JavaScript如何将字符串转换为日期格式yyyy-MM-dd?

4

我有一个字符串,格式为“05-01-2016”,当我在Chrome中运行下面的代码时,可以得到正确的输出:

var fromDate = new Date(searchOpts.RunDateFrom);

        fromDate.format("yyyy-MM-dd");

输出结果为 "2016/05/01"。

然而,当我在我的js文件中执行此代码时,我得到了以下输出:

Sun May 01 2016 00:00:00 GMT+0530 (India Standard Time)

如何防止这种情况发生?我需要以“2016-05-01”格式传递日期给solr。


简短回答:JavaScript的日期处理很糟糕。你有两个选择:在StackOver上搜索数十个关于这个主题的问题,或者使用http://momentjs.com/。 - Jeremy J Starcher
可能是将JavaScript日期格式化为yyyy-mm-dd的重复问题。 - Jeremy J Starcher
@Jeremy,我不能使用外部库,还有别的方法吗? - Ratan Servegar
在StackOver上搜索该主题的数十个问题之一,我已经链接了其中一个。 - Jeremy J Starcher
@JeremyJStarcher 谢谢 - Ratan Servegar
2个回答

5
formattedDate = fromDate.getFullYear() + "-" + (fromDate.getMonth()+1) + "-" + fromDate.getDate()

如果您只需要字符串

如果字符串长度小于2,则可以在月份和日期后添加0。 - amulous
1
这正是我正在寻找的,谢谢。 - Ratan Servegar

1
var year = fromDate.getFullYear();
var month = fromDate.getMonth() < 10 ? '0'+ fromDate.getMonth()+1 : fromDate.getMonth()+1

var date =  fromDate.getDate() < 10 ? '0'+ fromDate.getDate(): fromDate.getDate()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接