正在更新本地存储中的时间

Updating Time in Local Storage

本文关键字:时间 存储 更新      更新时间:2023-09-26

我试图每分钟连接到服务器,并传入当前时间的变量,即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)

任何信息都会有帮助,谢谢!

使用时间时要小心。您的服务器时间可能与客户端时间不同。对您来说,最好将最后一次请求的日期存储在$_SESSION['last']中。有了这个解决方案,你所有的问题都不再存在了。你的PHP设置了日期,所以它是相同的引用,并且格式很好。

只需在客户端保持超时:-)

使用new Date().getTime()返回UNIX时间戳;即自1970年1月1日以来的秒数。这使得它更容易与其他时间进行比较。

localStorage.lastUpdate = new Date().getTime();

将返回类似的内容:1332266002。

PHP的等价物就是简单的time()

要将该UNIX时间映射转换为MySQL TIMESTAMP,请使用MySQL的FROM_UNIXTIME函数。