2010-11-04 114 views
2

我正在研究一个涉及Javascript的个人项目,并且作为该项目的一部分,我想抓取当前日期(包括时间)并相应地显示它。没什么大不了的?那么,成交是,我想返回的时间&日期在东部日光时间,无论在世界上的IP是。如何使用Javascript日期对象计算东部时间?

如果这是不可能的,您建议采用哪些替代方法? PHP有这个功能吗?我可以编写一个简单的PHP脚本来获取日期并将其转换,但如果可能的话,我想保留在JS中。

我想通过最好的方式来做到这一点,但我会很感激您可以提供的任何帮助。

谢谢!

回答

1

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

如果您想在PHP中的任意区域之间执行时区转换,您需要拖动一个带有自己的时区信息的大型库,例如TimezoneJS

将JavaScript的所有内容全部保存为UTC可能会更好,并让PHP方面担心它会针对特定区域/时区格式化,例如使用来自Date/Time的时区内容。

+0

感谢您的信息和建议。 – Alex 2010-11-04 18:05:24

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时间,然后返回一个再次添加特定时区的偏移量的新日期。

+0

谢谢,你的答案是完全有效的,但我越想越想,我越来越认为我将使用PHP来做日期格式。 :) – Alex 2010-11-04 18:06:06

+2

请注意,如果您想考虑夏令时,从UTC转换到“东部时间”有点棘手。 – Eli 2012-12-10 23:51:33