2015-12-08 42 views
0

我在ISO字符串格式的日期ISO字符串CST的JavaScript

date = new Date().toISOString() 

返回我 「2015-12-08T14:03:36.129Z」

現在我想改變這種日期CST,並希望輸出如下

2015年12月23日11:30 AM

+0

是的從'.toString()'返回值足夠接近? – Pointy

+0

你應該看看這裏:http://stackoverflow.com/a/8047891/1114934 –

+0

可能重複[如何獲得JavaScript時間戳在JavaScript?](http://stackoverflow.com/questions/9756120/如何做我得到一個utc時間戳在JavaScript) –

回答

0

您可以自己只是格式化(假設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; 
} 

明顯這種方法的問題:夏令時。您可以手動(不經常更改)或使用類似TimezoneJSMomentJS-timezone的東西。

+0

只需'date.setUTCHours(date.getUTCHours() - 6)'就可以將新日期設置爲6小時。但夏令時邊界將是一個問題... – RobG

+0

@RobG葉普,這是短,承認;-)但我儘可能少的日期(不,這是水果,基準?),我知道爲什麼:太多的機會離開那個穿孔腳的場景太多了!如果可用,我使用內置函數或庫,MomentJS似乎是JavaScript的一個很好的解決方案。 – deamentiaemundi

0

請注意,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()));

相關問題