2012-05-23 72 views
10

Javascript中的Date對象是否使用非格里曆日曆?日期對象是否使用非格里曆日曆?

MDNMSDN文檔概述Date物體上的方法和參考UTCIETF-compliant RFC 2822 timestamps

維基百科的文章中提到

日使用公曆常規鑑定,但也可以使用儒略日的數字。

MDN和MSDN文檔只是說非UTC方法引用「本地時間」,但沒有定義「本地時間」是什麼。

我正在接觸一個web服務,這個web服務正在給我一些數據,其中包括一年的日期字段,我需要比較一下當前的日期。我很清楚依靠用戶機器的準確時間的缺陷,並且可以很好地解決由於時區不正確和虛假日期設置而導致的任何問題。

我所關注的,不過,關於不使用公曆語言環境的用戶,以及他們的瀏覽器會給回來,如果我使用.getDate().getMonth().getFullYear()方法來計算某一天的一年。

因此,在實踐中,Javascript中的「本地時間」是否指非格里曆日曆系統,如希伯來語或波斯日曆?

+0

我很確定「本地時間」是指UTC的時區偏移量。然而,這個問題仍然很有趣:getMonth()可以返回比11更大的東西。我強烈懷疑答案是「不」,但我沒有證據。 – Pointy

+0

@Pointy,ECMA-262規格確實說當地時間== utc +時區調整+日光時間大小時間調整。但是,我們都知道規格說的是什麼,瀏覽器做什麼並不總是一回事。 – mpdonadio

+1

朱利安天不是一個單獨的日曆系統 - 朱利安天只是自公元前4713年1月1日中午以來的天數的一小部分。有點像UNIX時間,除了天,還有更早的時代。 https://en.wikipedia.org/wiki/Julian_day – duskwuff

回答

0

ECMAScript規格(3rd edition5th edition在這方面幾乎相同,但我引述5日):您可以通過Julian日期定義使用公曆日期的事實告訴這個

15.9.1.9當地時間從UTC到當地時間

轉換是通過

LocalTime(t) = t + LocalTZA + DaylightSavingTA(t)

定義從本地時間到UTC轉換是通過

UTC(t) = t – LocalTZA – DaylightSavingTA(t – LocalTZA)

注意定義UTC(LocalTime(t))不一定總是等於t

LocalTZA是指當地時區調整,而DaylightSavingTA是夏令時的調整。

我還沒有找到任何瀏覽器(當前或歷史)的任何證據,當用戶的機器上啓用非格里曆日曆時會做任何不同的事情。

2

我剛剛通過設置我的電腦(Mac OS X 10.7.4)使用希伯來語日曆進行了測試,並且在Safari,Firefox或Chrome中未影響Date對象的行爲。看起來它總是使用公曆。

2

回覆:JavaScript中的Date對象是否使用非格里曆日曆?

不,我沒有看到JavaScript日期對象可以使用Julian日曆系統的聲明的任何備份。

但是,您可以將Javascript日期對象(公曆日期)轉換爲Julian DayJulian Date

儒略日

儒略日在Julian日期使用(JD)由天文社會科學使用時間測量系統,呈現的時間間隔中的一個天的級分自格林威治中午公元前4713年1月1日開始。國際天文學聯盟推薦使用儒略日期進行天文學使用。

儒略日

術語公曆日期被廣泛用於指天的年(順序日期),雖然這種用法是不嚴格雅閣標準由一些國際組織設置。

*數據來源爲上述報價是維基百科文章,Julian_day

注意,無論是格式,包括個月以來「Julian日期」和「儒略日」是爲在一天中的特定表示的術語公曆。 「4713 BC格林威治中午」

相關問題