如何使用Javascript Date对象计算东部时间?

时间:2010-11-04 17:08:39

标签: javascript date timezone

我正在开发一个涉及Javascript的个人项目,作为该项目的一部分,我想获取当前日期(包括时间)并相应地显示它。没什么大不了的?那么,交易是我想要返回的时间& Eastern Daylight TIme 中的日期,无论IP在哪个世界。

如果无法做到这一点,您建议采用哪种替代方法? php有这个功能吗?我可以写一个简单的PHP脚本,它需要一个日期并转换它,但我想尽可能保留在JS中。

我正在尝试通过最好的方式来做到这一点,但我很感激您提供的任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:5)

我发现了这个on the internet,并且还有更多这些脚本:

function calcTime(offset) {

    // create Date object for current location
    d = new Date();

    // convert to msec
    // add local time zone offset 
    // get UTC time in msec
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);

    return new Date(utc + (3600000*offset));

}

因此,您获取当前时间,添加当前位置的偏移量以获得UTC时间,然后返回新日期,再次添加某个时区的偏移量。

答案 1 :(得分:1)

JavaScript本地Date对象只知道两个时区,UTC和用户的区域设置时区(即使这样,您可以提取的有关区域设置时区的信息量也是有限的)。你可以在UTC工作并减去4小时来获得EDT,但你真的总是想要EDT而不是EST吗?

如果您想在PHP中的任意区域之间进行时区转换,则需要使用自己的时区信息拖动大型库,例如TimezoneJS

最好将所有JavaScript内容保存在UTC中,并让PHP方担心使用例如Date/Time中的时区内容来格式化特定区域设置/时区。