代码之家  ›  专栏  ›  技术社区  ›  Ya Basha

在javascript中更改一天开始的时间

  •  0
  • Ya Basha  · 技术社区  · 12 年前

    有没有一种方法可以将一天从凌晨4点开始,而不是从凌晨12点开始,我们都知道,我正在寻找一个javascript库或一种方法来实现这一点,我现在正在使用moment.js,但我不知道怎么做。

    谢谢你的建议,

    1 回复  |  直到 12 年前
        1
  •  0
  •   Wayne Smith    12 年前

    获取他们的本地时间,并将时区更改为服务器的时区加上4小时。服务器的时区是本地时间和GMT之间的时差。

    var GMTdate = new Date();
    var timeZoneFromDB = 4.00; 
    // add or subtract from the timeZone to set it to server time zone plus 4.
    // get the timezone offset from local time in minutes
    var tzDifference = timeZoneFromDB * 60 + GMTdate.getTimezoneOffset();
    //convert the offset to milliseconds, add to targetTime, and make a new Date
    var adjustedTime = new Date(GMTdate.getTime() + tzDifference * 60 * 1000);
    

    使用adjustTime的Javascript日期函数不会反映比服务器日期晚4小时的日期。

    注意:当然,时间会不正确。

    使现代化将当地时间“他们的时间”固定为GMT/UTC时间。

    再次更新。。。第一次是正确的。我想了一会儿,需要从格林尼治时间(深夜尽职调查)开始。

    注意:如果在服务器位置使用DST,请将timeZoneFromDb更改为

    var timeZoneFromDB = ((new Date()).dst()) ? '-04:00' : '-05:00';
    

    使用正确的数字调整到该时区。还要注意,DST通常不会在同一天开始,要正确处理它,必须知道服务器时区。