2012-01-20 85 views
1

我想對日期字符串進行直接轉換,但無法獲得我期望的結果。我期望下面的代碼生成一個日期等於原始字符串的日期部分,但它似乎在實例創建期間應用了一段時間。從JavaScript日期對象中提取日期字符串,但不應用時區

var usageTime = new Date('2012-01-19T22:59:50-0800'); 
console.log(usageTime); // Fri, 20 Jan 2012 06:59:50 GMT 

dayOfUsage = usageTime.getFullYear()+'-'+(usageTime.getMonth()+1)+'-'+usageTime.getDate(); 
console.log(dayOfUsage); // 2012-1-20 

我預計日期爲2012-1-19。什麼是解決這個問題的正確方法?

回答

0

您應該使用getUTC*()函數(getUTCDate(),getUTCHours()等)來獲得沒有時區偏移的時間。

+0

產生相同的結果。 dayOfUTCUsage = usageTime.getUTCFullYear()+' - '+(usageTime.getUTCMonth()+ 1)+' - '+ usageTime.getUTCDate(); dayOfUsage = usageTime.getFullYear()+' - '+(usageTime.getMonth()+ 1)+' - '+ usageTime.getDate(); console.log(dayOfUTCUsage); // 2012-1-20 console.log(dayOfUsage); // 2012-1-20 – Greg

+0

那麼,你定義的時間偏移-8小時,所以時間實際上是20日在UTC ... –

+0

我錯過了你的觀點。無論是否使用UTC版本的功能,結果都是一樣的。 – Greg

相關問題