我有一个格式为dd/MM/yyyy的日期字符串,我想从该字符串创建一个Date对象。 new Date(dd/MM/yyyy)
无法正常工作。
我有这段代码,显然不起作用:
function createDateObject(value){
try{
return new Date(value.split('/').**swap(0, 1)**.join('/'));
}
catch(){
return null;
}
}
createDateObject('31/01/2014') => Fri Jan 31 2014 00:00:00 GMT-0200 (Local Daylight Time)
哪个是最简单的方法?
如果我可以在一行中做到这一点,我就不想创建很多临时变量。
最佳答案
由于您的问题是如何在字符串中将月与日交换(dd/mm/yyyy
到mm/dd/yyyy
),因此,这就是答案:
var dateString = "25/04/1987";
dateString = dateString.substr(3, 2)+"/"+dateString.substr(0, 2)+"/"+dateString.substr(6, 4);
但是,如果要创建
new Date()
对象,则必须根据ISO 8601格式(dd/mm/yyyy
到yyyy-mm-dd
)更改字符串:var dateString = "25/04/1987";
dateString = dateString.substr(6, 4)+"-"+dateString.substr(3, 2)+"-"+dateString.substr(0, 2);
var date = new Date(dateString);