Javascript 将dd-mm-yyyy/dd/mm/yyyy字符串转换为日期

Javascript 将dd-mm-yyyy/dd/mm/yyyy字符串转换为日期,javascript,date,datetime,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 Dat

我正在尝试将日期的字符串格式转换为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)

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

Javascript
date
对象读取的是
“月-日-年”
,而不是
“日-月-年”
,因此您需要稍微更新
字符串

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

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(新日期(readableDate))在我使用过的JavaScript中,有一个玩日期的最佳工具。它叫。我建议您看看这个,例如,它允许您执行以下操作:

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();
您也可以这样做:

var d = new Date(year, month, day, hour, minute, second, millisecond);
要转换为您调用的时间戳:

d.getTime()

如果这些日期是字符串,您如何判断01-05-2000是1月5日还是5月1日?您将如何告诉程序如何区分差异?这应该是一个注释。“使用X库”的答案,当该库在OP中没有标记或提及时。我不同意。内置解析器只需要支持ECMA-262中提到的格式,对任何其他格式的支持取决于实现。