我正在尝试每分钟连接到服务器并传入当前时间的变量,这将是lastUpdate。在服务器端php文件中,我计划将传入的时间变量与数据库行中的TIMESTAMP
进行比较;很像if (time1-time2 > certain value)...
到目前为止javascript代码是:
var time;
var timer_is_on = 0;
localStorage.lastUpdate = 0;
localStorage.numUpdates = 0;
function timedCount()
{
localStorage.lastUpdate = new Date();
//connect to server
contactServer(localStorage.lastUpdate);
currentCount=currentCount+1;
time=setTimeout("timedCount()",60000);
}
我的问题是我是否正确地这样做了。我将localStorage.lastUpdate
声明为new Date()
,我不确定这是否正确?我尝试了循环,每分钟lastUpdate
似乎都是相同的日期和时间。
我的最后一个问题是我是否真的能比较javascript和php的两种时间格式。在SQL时间戳中,格式为2012-03-20 11:14:40
,而javascript new Date()
的日期格式为Tue Mar 20 2012 12:32:44 GMT-0400 (Eastern Daylight Time)
。
任何信息都会有所帮助,谢谢!
答案 0 :(得分:2)
使用时间时要小心。您的服务器时间可能与您的客户端时间不同。最适合您的是将最后一个请求的日期存储在$ _SESSION ['last']中。 有了这个解决方案,你的所有问题都不再存在了。你的PHP设置了日期,所以它是相同的引用,它的格式很好。
只需在客户端保持超时: - )
答案 1 :(得分:0)
使用new Date().getTime()
返回UNIX时间戳;也就是说,自1970年1月1日以来的秒数。这使得与其他时间比较容易。
localStorage.lastUpdate = new Date().getTime();
将返回如下内容:1332266002。
PHP等价物只是time()
。
要将UNIX时间映射转换为MySQL TIMESTAMP
,请使用MySQL的FROM_UNIXTIME
函数。