2017-06-15 95 views
0

我想今年字符串轉換成日期型像下面的例子:年轉換成字符串日期

var date = new Date('1999'); 
console.log(date); // result -> Thu Dec 31 1998 16:00:00 GMT-0800 (Pacific Standard Time) 

問題是與時區。由於字符串格式不正確,因此被視爲UTC時區。

如何正確地轉換年份字符串和可以當作當地時間

我知道它會工作,如果我像這樣'01/01/' + '1999'追加日日,但是有可能還有其他解決方案嗎?

+0

https://stackoverflow.com/questions/2613511/javascript-dateformat-for-different-timezones – Chris

+0

'新的日期(1999,0)'應該做的。將它作爲年+月參數傳遞,而不是要解析的字符串。 – Bergi

回答

1

您可以使用空值初始化日期以避免使用默認屬性的問題。

var date = new Date(""); 
date.setYear(1999); 
0

您應該先用當前時區創建一個新的Date對象,然後獲取您的時區偏移量,然後從中減去它。

getTimezoneOffset()方法返回從當前語言環境(主機系統設置)到UTC的 分鐘的時區差異。

下面應該工作:

var x = new Date().getTime() - new Date().getTimezoneOffset(); 
var y = new Date(x); 
console.log(y); 

您也可以在網上試穿jsfiddle

0

您應該始終使用UTC明確聲明任何日期變量,然後在需要時將其轉換。首先用UTC聲明日期,然後將其轉換爲字符串。所以,我認爲你需要:

var date = new Date('1999-01-01 08:00:00 UTC'); 
console.log(date.toString());