如何将时间格式YYYY-MM-DDTHH:mm:ss.sssZ转换为MM-DD-YY和标准时间

时间:2017-02-17 22:54:32

标签: javascript time

我有一个从MySQL返回的时间格式 YYYY-MM-DDTHH:MM:ss.sssZ

所以看起来像这样

2017-02-17T22:32:25.000Z

当我对它运行split()时,它什么都不做

var test = data[i].createdAt;

test.split("T");

它没有任何作用

所以我希望数据看起来像这样

2017-02-17T22:32:25.000Z

02-17-2017 10:32 p.m。

任何帮助?

5 个答案:

答案 0 :(得分:2)

您可能希望使用new Date(dateString)dateObj.toLocaleTimeString([locales[, options]])



var date = new Date('2017-02-17T22:32:25.000Z');
var formatOptions = { 
       day:    '2-digit', 
       month:  '2-digit', 
       year:   'numeric',
       hour:   '2-digit', 
       minute: '2-digit',
       hour12: true 
};
var dateString = date.toLocaleDateString('en-US', formatOptions);
// => "02/17/2017, 11:32 PM"

dateString = dateString.replace(',', '')
                       .replace('PM', 'p.m.')
                       .replace('AM', 'a.m.');
// => "02/17/2017 11:32 p.m."

console.log(dateString);




答案 1 :(得分:1)

JavaScript Date对象将接受与您类似的ISO日期,此时您可以手动格式化字符串,如下所示:



function formatDate(d) {
    var myDate = new Date(d);
    var hrs = ((myDate.getHours() > 12) ? myDate.getHours()-12 : myDate.getHours());
    var amPM = ((myDate.getHours() >= 12) ? "PM" : "AM");

    if (hrs==0) hrs = 12;

    var formattedDate = (myDate.getMonth() + 1) + "-" + myDate.getDate() + "-" + myDate.getFullYear() + " " + hrs + ":" + myDate.getMinutes() + " " + amPM;

    return formattedDate;
}

var myFormattedDate = formatDate("2017-02-17T22:32:25.000Z");
alert(myFormattedDate);




答案 2 :(得分:1)

如果您不反对使用Javascript库,我强烈推荐Moment:http://momentjs.com。对于您的用例,代码为:

var time = moment(data[i].createdAt).format('MMMM Do YYYY, h:mm a');

它处理多种时间格式(输入和输出)以及边缘情况。

答案 3 :(得分:0)

您可以在有或没有选项的情况下使用toLocaleDateStringtoLocaleTimeString。与toLocaleString相比,这允许您不包含逗号。



const str = '2017-02-17T22:32:25.000Z';
const d = new Date(str);

console.log(`${d.toLocaleDateString()} ${d.toLocaleTimeString()}`);

console.log(`${d.toLocaleDateString().replace(/\//g,'-')} ${d.toLocaleTimeString('en-US', {hour: '2-digit', minute:'2-digit'})}`);




答案 4 :(得分:0)

您可以使用toLocaleString为其提供可选参数。例如:



var dt = '2017-02-17T22:32:25.000Z';
console.log(new Date(dt).toLocaleString('en-CA', { hour12:true }));