Мне нужно проанализировать строку даты и времени в формате «2015-01-16 22:15:00». Я хочу разобрать это в объект даты JavaScript. Любая помощь в этом?
Я пробовал некоторые плагины jquery, moment.js, date.js, xdate.js. Все равно не повезло.
Мне нужно проанализировать строку даты и времени в формате «2015-01-16 22:15:00». Я хочу разобрать это в объект даты JavaScript. Любая помощь в этом?
Я пробовал некоторые плагины jquery, moment.js, date.js, xdate.js. Все равно не повезло.
С помощью moment.js вы можете создать объект момента, используя конструктор String+Format:
var momentDate = moment('2015-01-16 22:15:00', 'YYYY-MM-DD HH:mm:ss');
Затем вы можете преобразовать его в объект даты JavaScript, используя метод toDate():
var jsDate = momentDate.toDate();
Лучшее решение, теперь я использую date.js - https://code.google.com/p/datejs/
Я включил скрипт на свою html-страницу следующим образом:
<script type="text/javascript" src="path/to/date.js"></script>
Затем я просто проанализировал строку даты «2015-01-16 22:15:00», указав формат как
var dateString = "2015-01-16 22:15:00";
var date = Date.parse(dateString, "yyyy-MM-dd HH:mm:ss");
new Date("2015-01-16T22:15:00")
См. Date.parse().
Строка должна быть в формате ISO-8601. Если вы хотите анализировать другие форматы, используйте moment.js.
moment("2015-01-16 22:15:00").toDate();
Я пытался использовать ребята из moment.js. Но поскольку у меня была эта ошибка «ReferenceError: момент не определен», мне пришлось пока ее пропустить. Я пока использую временный обходной путь.
function parseDate(dateString) {
var dateTime = dateString.split(" ");
var dateOnly = dateTime[0];
var timeOnly = dateTime[1];
var temp = dateOnly + "T" + timeOnly;
return new Date(temp);
}
Если вы уверены, что он в нужном формате и не нуждается в проверке на наличие ошибок, вы можете проанализировать его вручную с помощью разделения (и, при необходимости, замены). Мне нужно было сделать что-то подобное в моем проекте (MM/DD/YYYY HH:mm:ss:sss), и я изменил свое решение, чтобы оно соответствовало вашему формату. Обратите внимание на вычитание 1 в месяце.
var str = "2015-01-16 22:15:00";
//Replace dashes and spaces with : and then split on :
var strDate = str.replace(/-/g,":").replace(/ /g,":").split(":");
var aDate = new Date(strDate[0], strDate[1]-1, strDate[2], strDate[3], strDate[4], strDate[5]) ;