将 Javascript 中的日期格式从“YYYY-MM-DD HH:MM:SS”更改为“MM-DD-YYYY”。

3

我想将 YYYY-MM-DD HH:MM:SS 转换为 MM-DD-YYYY

例如: 我有一个字符串代表一个日期,格式为:2013-06-15 03:00:00

我想使用JavaScript将此字符串转换为06-15-2013

是否有任何库可以实现这个功能?或者我应该只使用JavaScript?


一个?一个简单的正则表达式就足够了。 - Zeta
为什么你想要用JavaScript来做这件事呢?你可以只用SampleDateFormat就能完成。 - Souad
1
@Souad:你鼓励在一个特定于JavaScript的问题中使用Java设施,有什么原因吗? - Zeta
这个问题是你真正想问的吗?因为你的标题有误导性...如何使用Javascript将日期格式从YYYY-MM-DD HH:MM:SS更改为MM-DD-YYYY。 - abc123
3个回答

9
function change(time) {
    var r = time.match(/^\s*([0-9]+)\s*-\s*([0-9]+)\s*-\s*([0-9]+)(.*)$/);
    return r[2]+"-"+r[3]+"-"+r[1]+r[4];
}
change("2013-06-15 03:00:00");

现在需要返回正确的结果,不应该返回HH:MM:SS。 - abc123

0

演示:http://jsfiddle.net/abc123/f6k3H/1/

Javascript:

var d = new Date();
var c = new Date('2013-06-15 03:00:00');

alert(formatDate(c));
alert(formatDate(d));

function formatDate(d)
{
    var month = d.getMonth();
    var day = d.getDate();
    month = month + 1;

    month = month + "";

    if (month.length == 1)
    {
        month = "0" + month;
    }

    day = day + "";

    if (day.length == 1)
    {
        day = "0" + day;
    }

    return month + '-' + day + '-' + d.getFullYear();
}

由于它不使用正则表达式,您会注意到一些奇怪的东西... 例如:

d.getMonth() + 1

这是因为 getMonth 是从0开始计数的...

 day = day + "";

    if (day.length == 1)
    {
        day = "0" + day;
    }

这是因为小时、秒和分钟在只有1位数字时返回1位数字...这会使它们返回一个前导0。如果需要,月份和日期也可以这样做。


1
哎呀,那是一个与主题无关的回答,问题是如何修改现有的时间字符串,而不是如何使用给定的格式创建一个新的字符串。 - Zeta
有效观点...阅读时我更改了一些单词,因为我认为没有人会想做他所要求的事情...主要是因为问题标题“Javascript将日期格式从YYYY-MM-DD HH:MM:SS更改为MM-DD-YYYY”,我已经提供了对他问题的编辑,根据他的回应,我可能会删除这个答案。 - abc123

0

3
请至少提供一个使用给定的库的示例。 - Zeta

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