2017-06-02 122 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

相关问题