JS和PHP之间的日期转换

时间:2013-11-26 10:32:18

标签: javascript php

我似乎不理解日期转换客户端< - >之间的逻辑。服务器。我找不到一个好方法来处理这个...背景:我的应用程序将运行在客户的服务器上,我(通常情况下)将无法配置。所以我需要找出PHP时区偏移量(它主要是UTC,但我认为它可以设置为任何)和浏览器的时区,并在PHP的时区数据库中保存时间戳。

任何帮助将不胜感激。我写了这个:

var Time = {
    serverOffset: <?php echo date("Z"); ?>,
    clientOffset: new Date().getTimezoneOffset() / 60,
    serverToClient: function(PHPTimestamp) {
        return PHPTimestamp * 1000 - (Time.clientOffset - Time.serverOffset) * 60 * 60 * 1000;
    },
    clientToServer: function(JSDate) {
        var JSTimestamp = +JSDate;
        return JSTimestamp / 1000 + (Time.clientOffset - Time.serverOffset) * 60 * 60;
    },
    midnight: function(D) {
        return D.setHours(0).setMinutes(0).setSeconds(0);
    }    
}

但它不能作为例外工作。例如,如果我调用Time.clientToServer(new Date()),结果时间戳比我当地时间提前2小时,但它应该只有1(我的时区是UTC-1,我的PHP设置为UTC)。

不过,我猜我的方法并不是最好的方法。等待提示...

0 个答案:

没有答案