2017-06-02 176 views
0

我有以下代碼:JavaScript代碼不打印今天的日期,但昨天

var value_ = "2017-06-01"; 

value_ = value_.split(".")[0]; 
value_ = value_.replace(" ","T"); 
var dateObject = new Date(value_); 

formattedDate = (dateObject.getMonth() + 1) + "/" + dateObject.getDate() + "/" + dateObject.getFullYear(); 

alert(formattedDate); 

JSFiddle here:

它打印日期寫錯了,爲什麼呢?

+0

'Date.parse'不知道如何解釋你的輸入字符串。由於'06-01'含糊不清(是6月1日還是1月6日?)。 –

+0

它將日期(它解釋爲UTC)轉換爲當地時區。看到這個笨蛋。 –

+0

@AndréDion六月一號。 – Dan

回答

-2

如果你想打印今天的日期,這裏是一個辦法:

var dateObject = new Date(); 

formattedDate = (dateObject.getMonth() + 1) + "/" + dateObject.getDate() + "/" + dateObject.getFullYear(); 

alert(formattedDate); 
+0

請輸入整個單詞,不要使用「文本說話」(如果*你*想打印今天的日期....) –

+0

另外,這不是問題的OP在問。 –

+0

爲什麼downvote?我回答正確。 –

-1

如果你必須從一個字符串構造一個Date對象,使用Date.parse();在正確的格式的字符串。不要將字符串直接傳遞給Date()構造函數。

// Use correct string format (this assumes that you have no control over the 
 
// string's format). 
 
var dateString = "2017-06-01"; 
 

 
// That format could be invalid, so we need to correct it. 
 
var dateObject = new Date(dateString.replace("-", " ")); 
 

 
console.log("The date is: " + dateObject); 
 

 
formattedDate = (dateObject.getMonth() + 1) + "/" + dateObject.getDate() + "/" + dateObject.getFullYear(); 
 

 
console.log(formattedDate);

但是,如果你想當前的日期,只是實例化一個新的日期不帶參數:

var today = new Date(); 
+0

請解釋投票。 –

+0

我沒有downvote,但它使用字符串上的Date構造函數,而不是數字,所以這沒有任何意義。 –

+0

我試圖解決我的時間戳相關的問題,因爲這不包括在答案中。所以,現在,這個代碼在IE 11中工作,它顯示了Chrome中的NAN。 https://jsfiddle.net/439rwgk3/ – Dan

相關問題