Javascript setInterval и PHP Date ()

setInterval(function(){
var ss = "<?php echo Date('Y-m-d H:i:s'); ?>";
console.log(ss);
}, 1000);

У меня есть этот маленький код. Дата занимает один раз, а затем все время результат один и тот же.

(12) 2014-10-19 19:42:54

Как я могу это исправить?

-2

Решение

Если вы пытаетесь получить часы, которые увеличиваются на секунду, как и любые другие часы, вам придется использовать javascript для его реализации, и вам вообще не нужен PHP для этого.

Отредактированный ответ для использования времени сервера

function checkTime(i) {
if (i<10) {i = "0" + i};  // add zero in front of numbers < 10
return i;
}

var today=new Date('<?php print date("F d, Y H:i:s", time())?>');

function setTime() {
today.setSeconds(today.getSeconds()+1)
var year=today.getFullYear();
var month=today.getMonth();
var day=today.getDate();
var hour=today.getHours();
var minute=today.getMinutes();
var second=today.getSeconds();
minute = checkTime(minute);
second = checkTime(second);
month = checkTime(month);
var time = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
console.log(time);
}

setInterval(startTime, 1000);
1

Другие решения

Попробуй это:

var unixtime = <?=date('U')?>;
setInterval(function()
{var date = new Date();
date.setTime(++unixtime * 1000);
var ss = date.getFullYear() + '-'
+ (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + '-'
+ (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
+ (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
+ (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
+ (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());

console.log(ss);
}, 1000);
1

Откройте исходный код страницы и вы увидите, что полученный HTML выглядит примерно так:

<script>
setInterval(function(){
var ss = "2014-10-19 20:52:12";
console.log(ss);
}, 1000);
</script>

PHP скрипт — это серверная программа, которая выводит некоторый HTML, который отображает браузер. Поэтому нет ничего удивительного в том, что вы сталкиваетесь с таким поведением.

Если вы хотите создать таймер в javasctipt, вам нужно использовать Date экземпляр объекта:

setInterval(function() {

var d = new Date(),
ss = d.getFullYear() + '-' + d.getMonth(); // etc.. formate you date

console.log(ss);
}, 1000);

обращаться Date документация для доступных методов.

0

Вы должны обновлять свою дату в JavaScript в каждом вызове setInterval.

Когда вы создаете статический код с использованием php, он определяет функцию JavaScript с фиксированным значением даты. Тело этой функции не переопределяется после каждого вызова, потому что генерируется определенная дата.

0
По вопросам рекламы [email protected]