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

如何将此字符串转换为javascript日期对象?,javascript,Javascript,我有一个特定格式的字符串,我正试图将其转换为日期对象。我希望var-dateObject=new-Date(myString)就足够了,但它不起作用。所以我试着把绳子分成小块,但也没用 var str = '2015-02-20 11:00'; var obj = new Date(str.substr(2, 4), str.substr(5, 7), str.substr(8, 10), str.substr(13, 15), str.substr(16, 18)); // Above co

我有一个特定格式的字符串,我正试图将其转换为日期对象。我希望
var-dateObject=new-Date(myString)
就足够了,但它不起作用。所以我试着把绳子分成小块,但也没用

var str = '2015-02-20 11:00'; 
var obj = new Date(str.substr(2, 4), str.substr(5, 7), str.substr(8, 10), str.substr(13, 15), str.substr(16, 18));
// Above code yields invalid date

如何用字符串创建日期对象?

您刚才试过了吗

var str = '2015-02-20 11:00';
var obj = new Date(str);
为我工作->

如果出于某种奇怪的原因,它不起作用,请将其拆分并将其传递给位于适当位置的日期构造函数

var str = '2015-02-20 11:00';

var arr  = str.split(' ');
var time = arr.pop().split(':')
var arr2 = arr.shift().split('-');

var date = new Date(arr2[0], arr2[1]-1, arr2[2], time.shift(), time.pop(), 0, 0);

console.log(date);
你刚才试过了吗

var str = '2015-02-20 11:00';
var obj = new Date(str);
为我工作->

如果出于某种奇怪的原因,它不起作用,请将其拆分并将其传递给位于适当位置的日期构造函数

var str = '2015-02-20 11:00';

var arr  = str.split(' ');
var time = arr.pop().split(':')
var arr2 = arr.shift().split('-');

var date = new Date(arr2[0], arr2[1]-1, arr2[2], time.shift(), time.pop(), 0, 0);

console.log(date);

将您的代码行更改为

var str = '2015-02-20 11:00'; 
var obj = new Date(str.substr(0, 4), str.substr(5, 2), str.substr(8, 2), str.substr(11, 2), str.substr(14, 2));
它会起作用的

您使用ISO格式:YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS

例如: 新日期('2011-04-11')


新日期('2011-04-11T11:51:00')

将您的代码行更改为

var str = '2015-02-20 11:00'; 
var obj = new Date(str.substr(0, 4), str.substr(5, 2), str.substr(8, 2), str.substr(11, 2), str.substr(14, 2));
它会起作用的

您使用ISO格式:YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS

例如: 新日期('2011-04-11')


新日期('2011-04-11T11:51:00')

因为您已经拥有了与日期构造函数获取它们的顺序相同的单元,所以您可以这样做

var str = '2015-02-20 11:00',
    args = str.split(/[ :-]/).map(Number);
args[1] = args[1] - 1; // fix months;

var d = new Date; // this and the next line are separated otherwise
Date.apply(d, args); // you end up with a String and not a Date
d; // Wed Mar 05 2014 14:13:47 GMT+0000 (GMT Standard Time)

在IE11的控制台中尝试模拟IE9也很好。

因为您已经拥有了与构造函数获取日期相同的单元顺序,您可以这样做

var str = '2015-02-20 11:00',
    args = str.split(/[ :-]/).map(Number);
args[1] = args[1] - 1; // fix months;

var d = new Date; // this and the next line are separated otherwise
Date.apply(d, args); // you end up with a String and not a Date
d; // Wed Mar 05 2014 14:13:47 GMT+0000 (GMT Standard Time)

在IE11的控制台中尝试模拟IE9也很好。

您的格式与标准格式非常接近,只需将空格替换为
T

var date = new Date(str.split(' ').join('T'));


刚查过IE8。确实不起作用…

您的格式与标准格式非常接近,只需将空白替换为
t

var date = new Date(str.split(' ').join('T'));


刚查过IE8。确实不起作用…

我读了一些与IEI不起作用的东西我读了一些与IEI不起作用的东西IE@Weblurk-在什么浏览器中?@adaneo-Firefox。但你的第二个例子几乎奏效了。它错了一个月。因此,如果我写2012-02-20,它会将其转换为2012 Mars 20。现在测试,这个月是错误的,因为javascript月份是零基的,只需减去1Aha就不知道JS月份。谢谢您可以使用事实
'2015-02-20 11:00'。split(/[:-]/);//[“2015”、“02”、“20”、“11”、“00”]
,此外,代码还将包含一个笑脸,这使它在默认情况下非常棒。@web潜伏-在什么浏览器中?@adaneo-Firefox。但你的第二个例子几乎奏效了。它错了一个月。因此,如果我写2012-02-20,它会将其转换为2012 Mars 20。现在测试,这个月是错误的,因为javascript月份是零基的,只需减去1Aha就不知道JS月份。谢谢您可以使用事实
'2015-02-20 11:00'。split(/[:-]/);//[“2015”、“02”、“20”、“11”、“00”]
,此外,代码还将包含一个笑脸,这使得默认情况下它非常棒。