如何将字符串转换为JavaScript日期对象?

var st = "date in some format"
var dt = new Date();

var dt_st = // st in Date format, same as dt.

当前回答

var date = new Date(year, month, day);

or

var date = new Date('01/01/1970');

格式为“01-01-1970”的日期字符串在FireFox中行不通,所以最好在日期格式字符串中使用“/”而不是“-”。

其他回答

我已经为此创建了一个小提琴,你可以在任何日期字符串上使用toDate()函数并提供日期格式。这将返回一个Date对象。 https://jsfiddle.net/Sushil231088/q56yd0rp/

"17/9/2014".toDate("dd/MM/yyyy", "/")

不幸的是,我发现了

var mydate =新日期(2014-04-03); 游戏机。log (mydate toDateString ());

返回“2014年4月2日星期三”。我知道这听起来很疯狂,但这确实发生在一些用户身上。

防弹方案如下:

Var parts ='2014-04-03'.split('-'); //请关注月份(零件[1]);JavaScript从0开始计算月份: // 1月- 0日,2月- 1日,等等。 var mydate =新的日期(部分[0],部分[1]- 1,部分[2]); console.log (mydate.toDateString ());

作为这里所解释的内容的一个插件,您可以使用new Date()创建日期,并使用非常有用的toLocaleDateString()函数对其进行格式化

一个例子:

console.log(new Date('1970-01-01').toLocaleDateString('es-ES')) //——>输出'1/1/1970'

如果要从“dd/MM/yyyy”格式转换。这里有一个例子:

var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
var arrayDate = stringDate.match(pattern);
var dt = new Date(arrayDate[3], arrayDate[2] - 1, arrayDate[1]);

此解决方案适用于IE 9以下版本。

将其作为参数传递给Date():

var st = "date in some format"
var dt = new Date(st);

您可以使用,例如:dt.getMonth()来访问日期、月、年。