使用Date.UTC()運行時會出現問題,因爲Date.UTC()會自動將0-99之間的任何年份轉換爲1900-1999,當我需要函數來維護原來的一年過去了。我曾嘗試傳遞一個字符串與領先的0年,但我仍然有同樣的問題。Date.UTC()在0-100之間的年份
更新: 感謝您的回覆,並在閱讀MDN文檔後,我採取了一種解決方法,它適用於Chrome & Firefox。
function getUTC(date) {
var year = date.getUTCFullYear();
if (year >= 0 && year < 100) {
//calculate the difference in ms between UTC time and local time
var diff = (new Date(0,0,1,0,0,0,0)).getTime() - Date.UTC(0,0,1,0,0,0,0);
//return the local time plus the calculated difference
return date.getTime() + diff;
}
return Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
}
獲得UTC時間的一個簡單的方法是.setUTCFullYear(1200,0,1)
或任何.setUTC______()
方法的返回值賦值給一個變量。
var date = new Date();
var time = date.setUTCFullYear(1200,0,1)
// time equals -24298834086121
MDN確實聲明它支持1900年以後的版本,但它也支持我在1900年之前在Firefox和Chrome的控制檯中測試過的年份。我知道我的使用超出了預期的用途。 –