Создать объект Date из строки с помощью JavaScript - PullRequest
1 голос
/ 17 января 2012

В PHP, если у меня есть:

$date = "2012-01-18 16:00";

Я могу сделать:

$newDate = new DateTime($date);

В JS (jQuery) у меня есть:

var date = "2012-01-18 16:00";

почему яне могу:

var newDate = new Date(date);

?Это вернет мне неверную дату.

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Чтобы эта строка была проанализирована , вам нужно T между датой и временем

var date = "2012-01-18T16:00";
var newDate = new Date(date);

чтобы исправить исходный код:

var date = "2012-01-18 16:00";
date = date.replace(" ", "T");
var newDate = new Date(date);

DEMO


Конструктор Date также принимает год, месяц и день

var newDate = new Date(2012, 1, 18)

хотя, чтобы заставить это работать, вам нужно разделить вашу строку.

1 голос
/ 17 января 2012

Datejs - это библиотека дат Javascript с открытым исходным кодом, которая может распознавать многие форматы ввода даты, включая тот, который вы указали в своем вопросе.Это также работает в местном часовом поясе.Если вы не хотите использовать эту библиотеку, вы все равно можете просто заменить пробел в строке даты на T, например:

var date = "2012-01-18 16:00";
var newDate = new Date(date.replace(" ","T"));

Обратите внимание, что этот метод предполагает, что вы вводите в GMT ивычтет или добавит соответствующее количество часов для локального пользователя, а Datejs - нет.

1 голос
/ 17 января 2012

Вы (почти) можете:

new Date(year, month, day [, hour, minute, second, millisecond ]);

Еще лучше включить datejs и сделать это:

Date.parse("2012-01-18 16:00");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...