2009-08-22 3 views

ответ

3

Я думаю, что это может помочь вам http://www.mattkruse.com/javascript/date/

Theres в getDateFromFormat() функцию, которую вы можете подправить немного, чтобы решить вашу проблему.

+0

@ lucas и как насчет времени есть способ его разобрать? – avnic

+0

Функция синтаксического разбора не принимает этот формат, попробуйте, в IE и FF вы получите ** Пн 08.11.2010 12: 05: 00 **, в Chrome просто ** Неверная дата ** – CMS

+0

@CMS: Это было первое предположение. Я нашел другой метод. Благодарю. – Kredns

3

Вы можете получить части даты, используя регулярное выражение, и вызовите Date конструктор, корректируя номер месяца, так как месяц числа равны нулю на основе, например:

function customDateParse (input) { 
    var m = input.match(/(\d+)/g); 
    return new Date(m[2], m[1] - 1, m[0], m[3], m[4], m[5]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Если вы не как регулярные выражения:

function customDateParse (input) { 
    input = input.split(' '); 
    var date = input[0].split('/'), 
     time = input[1].split(':'); 

    return new Date(date[2], date[1] - 1, date[0], time[0], time[1], time[2]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Но если вы обнаружите, что комплекс, и вы готовы сделать больше Даты манипуляций я настоятельно рекомендую вам DateJS библиотеку, маленький, с открытым исходным кодом и синтаксический сахар ...

+0

Это кажется немного сложным. Это также похоже на чрезмерное использование Regex, так как существует метод getDateFromFormat() ', доступный в JavaScript. – Kredns

+0

Нет встроенной функции * getDateFromFormat * ... – CMS

+0

См. Ссылку, представленную в моем ответе. – Kredns

1

Используйте momentjs для преобразования из строки в объект Date.

var date = '23/08/2009 12:05:00'; 
var datetime = moment(date, 'DD/MM/YYYY HH:mm:ss'); 
datetime = moment.toDate(); 
Смежные вопросы