2010-11-04 48 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