我在ISO字符串格式的日期ISO字符串CST的JavaScript
date = new Date().toISOString()
返回我 「2015-12-08T14:03:36.129Z」
現在我想改變這種日期CST,並希望輸出如下
2015年12月23日11:30 AM
我在ISO字符串格式的日期ISO字符串CST的JavaScript
date = new Date().toISOString()
返回我 「2015-12-08T14:03:36.129Z」
現在我想改變這種日期CST,並希望輸出如下
2015年12月23日11:30 AM
您可以自己只是格式化(假設CST =北美中部標準時間= UTC - 6小時)
function getCSTDate(){
var months = ["January","February","March","April","May","June",
"July","August","September","October","November","December"];
var date = new Date();
var meridian;
var cstdate = "";
date = new Date(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours() - 6,
date.getUTCMinutes(),
date.getUTCSeconds(),
date.getUTCMilliseconds()
);
meridian = (date.getHours() < 12)?"AM":"PM";
//CST date example: December 23, 2015 11:30 AM
cstDate = months[date.getMonth()]
+ " "
+ date.getDate()
+ ", "
+ date.getFullYear()
+ " "
+ date.getHours()
+ ":"
+ date.getMinutes()
+ " "
+ meridian;
return cstDate;
}
明顯這種方法的問題:夏令時。您可以手動(不經常更改)或使用類似TimezoneJS或MomentJS-timezone的東西。
只需'date.setUTCHours(date.getUTCHours() - 6)'就可以將新日期設置爲6小時。但夏令時邊界將是一個問題... – RobG
@RobG葉普,這是短,承認;-)但我儘可能少的日期(不,這是水果,基準?),我知道爲什麼:太多的機會離開那個穿孔腳的場景太多了!如果可用,我使用內置函數或庫,MomentJS似乎是JavaScript的一個很好的解決方案。 – deamentiaemundi
請注意,CST是UTC-0600的單個時區。如果你想在同一個區域進行夏令時,你需要自己編程。
要獲得任何時區的時間,你可以調整日期的UTC時間所需的偏移,然後只讀過UTC值,如下所示:
function getCST(date) {
var months = ['January','February','March','April','May','June','July',
'August','September','October','November','December'];
var d = new Date(+date);
// CST is UTC -0600 so subtract 6 hours and use UTC values
d.setUTCHours(d.getUTCHours() - 6);
return months[d.getUTCMonth()] + ' ' +
d.getUTCDate() + ', ' +
d.getUTCFullYear() + ' ' +
((d.getUTCHours()%12) || 12) + ':' +
('0' + d.getUTCMinutes()).slice(-2) + ' ' +
(d.getUTCHours() < 12? 'AM':'PM');
}
document.write("Current CST time is: " + getCST(new Date()));
是的從'.toString()'返回值足夠接近? – Pointy
你應該看看這裏:http://stackoverflow.com/a/8047891/1114934 –
可能重複[如何獲得JavaScript時間戳在JavaScript?](http://stackoverflow.com/questions/9756120/如何做我得到一個utc時間戳在JavaScript) –