0

PHP の日付があり、PHP の日付と今日の日付の違いが必要です。コードは次のとおり
です。var 今日 = 新しい日付 (); var 日 = 0; var 時間 = 0; 変数分= 0; 変数秒 = 0; var sumeDays = 0;

    if (datePhp>today){
        var difference=(datePhp.getTime()-today.getTime())/1000;
        days=Math.floor(difference/86400);
        difference=difference-(86400*days);
        if(days==1){
            sumeDays=days*24;
        }
        hours=Math.floor(difference/3600);
        printHours=Math.floor(difference/3600)+sumeDays;
        difference=difference-(3600*hours);
        minutes=Math.floor(difference/60);
        difference=difference-(60*minutes);
        seconds=Math.floor(difference);`
            $("#counter" + counter).html(printHours + ' Hours ' + minutes + '                 Minutes ' + seconds + ' Seconds');

        if (days>0 || hours>0 || minutes>0 || seconds>0){
            setTimeout("countdown("+counter+", "+year+","+month+","+day+","+hour+","+minute+","+second+")",1000)
        }

コードは実行されますが、常に 24 時間未満と表示されるため、正しく実行されません。たとえば、phpDate が 4/06/2014 09:30 (4 はヨーロッパの日、6 は 6 月) で、今日は 2/06/2014 09:30 (2 はヨーロッパの日、6 は 6 月) の場合です。コードは、phpDate まで 24 時間しかないことを示しています。

そしてhtmlのコードは次のとおりです。

  <div id='counter<?php echo $i ?>'></div>
  <script type="text/javascript">
  countdown(<?php echo $i?>, <?php echo $year?>, <?php echo $month?>, <?php echo $day?>, <?    php echo $hour?>, <?php echo $minute?>, <?php echo $second?>);
  </script> 
4

1 に答える 1

-1
p = new Date('4/06/2014 09:30')
>Sun Apr 06 2014 09:30:00 GMT+0530 (India Standard Time)
n = new Date('2/06/2014 09:30')
>Thu Feb 06 2014 09:30:00 GMT+0530 (India Standard Time)
diff = p.getTime() - n.getTime()
>5097600000
diffHours = diff / (1000 * 60 * 60)
>1416

2006 年 2 月から 4 月 6 日までの 1416 時間

私はあなたのコードを完全には理解していませんが、以下のコードでそれを行うと、48見栄えの良い時間になります

var datePhp = new Date(2014, 5, 4, 9, 30, 0),
    today = new Date(2014, 5, 2, 9, 30, 0);

if (datePhp > today) {
    var difference = (datePhp.getTime() - today.getTime()) / (1000*60*60);
    document.getElementById('res').innerHTML = difference;
}

これは同じフィドルです。http://jsfiddle.net/tQ9jW/

時間の違いだけが必要な場合に、これらすべての複雑なことを行っている理由を説明できれば、コードのデバッグを検討できます。

于 2014-06-02T08:28:00.633 に答える