разница секунд в 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 не знаю, пытаюсь учиться, перепиливая готовые решения. |
Rise,
спасибо все работает! тестил на локалке :blink: , брн. |
| Часовой пояс GMT +3, время: 21:26. |