转换dd-mm-yyyy / dd / mm / yyyy字符串到目前为止

时间:2018-04-17 12:21:10

标签: javascript date datetime

我正在尝试将日期的字符串格式转换为JavaScript中的日期对象。 我得到了不同类型的日期格式,如“dd / MM / yyyy HH:mm:ss”或“dd-MM-yyyy HH:mm:ss”或“MM-dd-yyyy HH:mm:ss”等。想要将它们转换为时间戳并在UI中显示它们。 我尝试下面的代码来获取日期对象

new Date("05/01/2012 21:10:17");
Tue May 01 2012 21:10:17 GMT+0530 (India Standard Time)
new Date("15/01/2012 21:10:17");
Invalid Date
new Date("15-01-2012 21:10:17");
Invalid Date
new Date("05-01-2012 21:10:17");
Tue May 01 2012 21:10:17 GMT+0530 (India Standard Time)

他们中很少有人获得Invalid Date。请帮帮我,是否有任何特定的代码/逻辑将任何字符串格式转换为日期对象?

3 个答案:

答案 0 :(得分:0)

Javascript Date对象为"month day year",而不是"day month year",因此您需要更新String

在这里,我只是在你的字符串中交换月份和日期:

const data = "15/01/2012 21:10:17";
const readableDate = data.substring(3,6) + data.substring(0,2) + data.substring(5,data.length);
console.log(new Date(readableDate));

答案 1 :(得分:0)

你也可以这样做:

var d = new Date(year, month, day, hour, minute, second, millisecond);

要转换为时间戳,请致电:

d.getTime()

答案 2 :(得分:-1)

有一个最好的工具,可以在我用过的JavaScript中玩日期。它被称为Moment.js。我建议你看看这个,它允许你举例来做这样的事情:

var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY');
var dateMonthAsWord = moment("2014-02-27T10:00:00").format('DD-MMM-YYYY');
var myDate = moment(str, 'YYYY-MM-DD').toDate();