Преобразование даты и времени в действительную дату JavaScript - PullRequest
15 голосов
/ 14 июля 2011

Мне предоставляется строка даты и времени в следующем формате:

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.

Ответы [ 9 ]

38 голосов
/ 14 июля 2011

Это работает везде, включая Safari 5 и Firefox 5 на OS X.

ОБНОВЛЕНИЕ: Fx Quantum (54) не нуждается в замене, но Safari 11 все еще не доволен, если вы не конвертируете, как показано ниже

var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));
console.log(date_test);

FIDDLE

6 голосов
/ 26 августа 2016

Можно использовать методы 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);
2 голосов
/ 30 августа 2016

Использование:

enter code var moment = require('moment')
var startDate = moment('2013-5-11 8:73:18', 'YYYY-M-DD HH:mm:ss')

Moment.js работает очень хорошо. Вы можете прочитать больше об этом здесь .

1 голос
/ 01 января 2018

Для этого можно использовать moment.js, он преобразует объект DateTime в действительную дату в формате Javascript:

   moment(DateOfBirth).format('DD-MMM-YYYY'); // put format as you want 

   Output: 28-Apr-1993

Надеюсь, это поможет вам:)

1 голос
/ 17 марта 2013
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;
}
1 голос
/ 14 июля 2011

Просто используйте Date.parse(), который возвращает число, затем используйте new Date() для его анализа:

var thedate = new Date(Date.parse("2011-07-14 11:23:00"));
0 голосов
/ 26 августа 2016

Вы можете использовать методы 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);
0 голосов
/ 14 июля 2011

Ну, быстро нашел ответ Конвертировать дату из строки в javascript с небольшими изменениями работает для меня.Спасибо, связанные вопросы.

0 голосов
/ 14 июля 2011

new Date("2011-07-14 11:23:00"); отлично работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...