更简洁的方法在Javascript中将dd-mm-yyyy转换为mm-dd-yyyy格式

时间:2011-07-13 18:45:59

标签: javascript date

我的这个日期是15-07-2011的字符串,格式为dd-mm-yyyy。我需要从这个字符串创建一个Date对象。因此,我必须将dd-mm-yyyy的日期转换为mm-dd-yyyy格式。

我做的是以下内容。

var myDate = '15-07-2011';
var chunks = myDate.split('-');

var formattedDate = chunks[1]+'-'+chunks[0]+'-'+chunks[2];

现在我收到了mm-dd-yyyy格式的字符串07-15-2011,我可以将它传递给Date()构造函数来创建Date对象。我想知道是否有更清洁的方法来做到这一点。

9 个答案:

答案 0 :(得分:5)

看起来很干净。

答案 1 :(得分:2)

重新排列字符串块是一种非常“干净”且合法的方式来更改日期格式。

但是,如果您对此不满意(也许您想知道您重新安排的字符串实际上是一个有效的日期?),那么我建议您查看DateJS,这是适用于Javascript的全功能日期处理库。

答案 2 :(得分:1)

取决于你的意思清洁

var myDate = '15-07-2011';
var chunks = myDate.split('-');
var formattedDate = [chunks[1],chunks[0],chunks[2]].join("-");

有些人会说这更清洁,但基本上是一样的。

答案 3 :(得分:1)

var formattedDate = chunks[1] + '-' + chunks[0] + '-' + chunks.pop();

答案 4 :(得分:1)

如果你想,你可以减少一些变数。

var date = '15-07-2011'.split('-');
date = date[1]+'-'+date[0]+'-'+date[2];

如果你想要一个班轮

var date = '15-07-2011'.replace(/(\d*)-(\d*)-(\d*)/,'$2-$1-$3')

答案 5 :(得分:1)

var c = '01-01-2011'.split('-');
var d = new Date(c[2],c[1]-1,c[0]);

答案 6 :(得分:0)

我会说我的意见是你的解决方案完全有效,但如果你想要不同的东西:

var myDate = '15-07-2011';
myDate.split('-').reverse().join('-');

会给你'2011-07-15',虽然不完全是你要求的,但Date

会正确解析

答案 7 :(得分:0)

我编写了一个用于解析,操作和格式化名为Moment.js

的字符串的库
var date = moment('15-07-2011', 'DD-MM-YYYY').format('DD-MM-YYYY');

答案 8 :(得分:-2)

尝试

myDate.format("mm-dd-yyyy");