2016-07-22 18 views
0

我有一個日期和時間存儲在Typescript中的不同字符串中,我想將它轉換爲日期。轉換帶有日期和字符串的字符串與時間在單一日期in Typescript

這使我瘋狂,因爲我在格林威治標準時間3和日期不是它應該即使我使用UTC。

我有兩個問題:第一,日期不正確,第二,有沒有更「優雅」的方式來做到這一點?

parseDate(date: string, time: string) : Date { 
     let d = new Date(Date.UTC(
      Number(date.substring(0,4)), 
      Number(date.substring(5,7)) - 1, 
      Number(date.substring(8)), 
      Number(time.substring(0, 2)), 
      Number(time.substring(3)) 
     )); 
     return d; 
     } 

我與日期「2018年2月9日」和時間'10測試:15' ,我得到星期四2018年2月9日七時15分00秒格林尼治標準時間0300(SA東部標準時間)

回答

1

該日期實際上看起來不錯,您是否使用toString()來查看它包含的內容?這將始終使用您當地的時區。

與toUTCString嘗試()如果你需要不導入完全臃腫庫不錯的解析能力

,我勸出生日期(https://github.com/taylorhakes/fecha

+0

對不起,我輸錯了日期,現在已更正;無論如何,它看起來不好,時間是07:15,應該是10:15;如果我不使用UTC,那麼日期應該是08時的08. 我使用控制檯檢查日期,因爲我想將它用作日期而不是字符串 – David

+1

嘗試console.log(date.toUTCString ())? – AlexG

1

當使用Date.UTC要設置時區爲UTC,要使用瀏覽器時區,您可以簡單地使用:

parseDate(date: string, time: string) : Date { 
    return new Date(date + ' ' + time) 
} 
parseDate('2018-02-09', '10:15') // Fri Feb 09 2018 10:15:00 GMT+0100 (CET) - I'm in GMT+01