我的这个日期是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
对象。我想知道是否有更清洁的方法来做到这一点。
答案 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");