разница секунд в Unix
Добрый вечер!
делаю небольшой секундомер с рассчетом разницы секунд текущего времени и заданой датой в Unix-формате. <?php $ltime = date (Y,n,d,H,i,s, 1408370664); ?> <script type="text/javascript"> var clock; $(document).ready(function() { var currentDate = new Date(); // var currentDate = new Date(); var pastDate = new Date("<? echo $ltime ?>"); var diff = currentDate.getTime() / 1000 - pastDate.getTime() / 1000; clock = $('.clock').FlipClock(diff, { clockFace: 'DailyCounter' }); }); </script> что я делаю не так ? |
Не обязательно форматировать дату, достаточно передать timestamp:
<?php // js timestamp — в миллисекундах, PHP — в секундах. $ltime = 1408370664 * 1000; ?> <script type="text/javascript"> $(document).ready(function() { var currentDate = new Date(); var pastDate = new Date("<? echo $ltime ?>"); // Невалидная дата при приведении к числу отдает NaN if (!isNaN(pastDate)) { var diff = currentDate - pastDate; window.clock = $('.clock').FlipClock(diff, { clockFace: 'DailyCounter' }); } }); </script> |
ixth,
все привел к примеру, но выдает ошибку фун-ции в 10 стр, именно на "!". может допскрипт (compiled/flipclock.js) его корявит, переделываю с flipclockjs . com |
Цитата:
|
Но если я сменю часовой пояс, timestamp не изменится.
|
var utc = new Date('Wed Aug 20 2014 12:00:00 UTC').getTime(); var msk = new Date('Wed Aug 20 2014 16:00:00 GMT+0400 (MSK)').getTime(); alert(utc + '\n' + msk); |
Rise,
Цитата:
проблема скорее всего из-за NaN. <? $ltime = 1408370664 * 1000; > <script type="text/javascript"> var clock; $(document).ready(function() { var currentDate = new Date(); var pastDate = new Date("<? echo $ltime ?>"); var diff = currentDate.getTime() / 1000 - pastDate.getTime() / 1000; clock = $('.clock').FlipClock(diff, { clockFace: 'DailyCounter' }); alert(diff + '\n' + pastDate + '\n' + currentDate + '\n' ); }); </script> Если ставить в 8 строку Unix в милисекундах - работает, но заданое время должно браться из переменной посредством php (как в примере выше, но он не работатет). Танец с бубном Цитата:
|
Убери кавычки вокруг ltime. Date пытается парсить строку, а не timestamp.
|
ixth,
Цитата:
|
Rise,
суть в том что переменная посредством php береться из БД, а в БД естественно она в unix, так как этот формат исплользуэться в осоновном обработчике. Проблема в том что я JS не знаю, пытаюсь учиться, перепиливая готовые решения. |
Часовой пояс GMT +3, время: 04:31. |