Преобразование даты и времени в действительную дату JavaScript
У меня есть строка datetime, предоставляемая мне в следующем формате:
yyyy-MM-dd HH:mm:ss
2011-07-14 11:23:00
При попытке разобрать его в объект JavaScript date()
он не работает. Каким образом можно преобразовать это в формат, который может понять JavaScript?
В ответах ниже предлагается что-то вроде
var myDate = new Date('2011-07-14 11:23:00');
Это то, что я использовал. Похоже, это может быть проблема с браузером. Я сделал для этого http://jsfiddle.net/czeBu/. Он работает нормально для меня в Chrome. В Firefox 5.0.1 на OS X он возвращает Invalid Date
.
Ответы
Ответ 1
Это работает повсюду, включая Safari 5 и Firefox 5 для OS X.
UPDATE: Fx Quantum (54) не нуждается в замене, но Safari 11 все еще не счастлив, если вы не конвертируете его ниже
var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));
console.log(date_test);
Ответ 2
Можно использовать методы getmonth и getday для получения только даты.
Здесь я прилагаю свое решение:
var fullDate = new Date(); console.log(fullDate);
var twoDigitMonth = fullDate.getMonth() + "";
if (twoDigitMonth.length == 1)
twoDigitMonth = "0" + twoDigitMonth;
var twoDigitDate = fullDate.getDate() + "";
if (twoDigitDate.length == 1)
twoDigitDate = "0" + twoDigitDate;
var currentDate = twoDigitDate + "/" + twoDigitMonth + "/" + fullDate.getFullYear(); console.log(currentDate);
Ответ 3
Использование:
enter code var moment = require('moment')
var startDate = moment('2013-5-11 8:73:18', 'YYYY-M-DD HH:mm:ss')
Moment.js работает очень хорошо. Вы можете прочитать об этом здесь.
Ответ 4
Просто используйте Date.parse()
, который возвращает Number, затем используйте new Date()
для его синтаксического анализа:
var thedate = new Date(Date.parse("2011-07-14 11:23:00"));
Ответ 5
function ConvertDateFromDiv(divTimeStr) {
//eg:-divTimeStr=18/03/2013 12:53:00
var tmstr = divTimeStr.toString().split(' '); //'21-01-2013 PM 3:20:24'
var dt = tmstr[0].split('/');
var str = dt[2] + "/" + dt[1] + "/" + dt[0] + " " + tmstr[1]; //+ " " + tmstr[1]//'2013/01/20 3:20:24 pm'
var time = new Date(str);
if (time == "Invalid Date") {
time = new Date(divTimeStr);
}
return time;
}
Ответ 6
Вы можете использовать методы get:
var fullDate = new Date();
console.log(fullDate);
var twoDigitMonth = fullDate.getMonth() + "";
if (twoDigitMonth.length == 1)
twoDigitMonth = "0" + twoDigitMonth;
var twoDigitDate = fullDate.getDate() + "";
if (twoDigitDate.length == 1)
twoDigitDate = "0" + twoDigitDate;
var currentDate = twoDigitDate + "/" + twoDigitMonth + "/" + fullDate.getFullYear(); console.log(currentDate);
Ответ 7
Вы можете использовать moment.js для этого, он преобразует объект DateTime в действительную дату в формате Javascript:
moment(DateOfBirth).format('DD-MMM-YYYY'); // put format as you want
Output: 28-Apr-1993
Надеюсь, это поможет вам:)
Ответ 8
Хорошо, быстро нашел ответ Преобразовать дату из строки в javascript с небольшими изменениями для меня. Спасибо, связанные с этим вопросы.
Ответ 9
new Date("2011-07-14 11:23:00");
отлично работает для меня.