更干净的方式转换dd-mm-yyyy到mm-dd-yyyy格式的Javascript

Cleaner way to convert dd-mm-yyyy to mm-dd-yyyy format in Javascript

本文关键字:mm-dd-yyyy 格式 Javascript dd-mm-yyyy 转换 方式      更新时间:2023-09-26

我有这个日期作为字符串与我在dd-mm-yyyy格式的15-07-2011。我需要从这个字符串创建一个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对象。我想知道是否有更干净的方法来做到这一点。

看起来很干净

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

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

这取决于你所说的cleaner

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

有些人会说这样更简洁,但本质上是一样的

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

如果你愿意,你可以减少一些变量。

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')

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

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

将给你'2011-07-15',虽然不是你所要求的,但会被Date正确解析

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

var date = moment('15-07-2011', 'DD-MM-YYYY').format('DD-MM-YYYY');

Try

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