2014-12-31 3 views
0

У меня есть выбор даты, которая находится в формате 31-Dec-2014, так как это формат, который всем знаком с нашим инструментом.Дата преобразования в Javascript в другом формате

Я пытаюсь преобразовать его в объект даты JavaScript в формате mm/dd/yyyy, но у меня небольшие проблемы.

Я пробовал что-то простое, например var startDate = new Date('31-Dec-2014');, но он выводит неверную дату.

Я знаю, что есть плагины, такие как date.js и moment.js, но я чувствую, что это было бы легко обойтись без него.

Любые идеи?

+0

Возможный дубликат [Преобразование даты строки в другой формат с помощью javascript] (http://stackoverflow.com/questions/8338381/convert-dates-string-to-different-format-with-javascript) – wmock

+0

Возможный дубликат: http : //stackoverflow.com/questions/8338381/convert-dates-string-to-different-format-with-javascript – wmock

+0

Вы не можете ожидать 'Date' для синтаксического анализа дат. Либо используйте стандартный синтаксис, либо используйте библиотеку для большей гибкости, или проанализируйте ее вручную. – Oriol

ответ

1

Используйте 3-мерную версию Date и переведите код месяца на правильный номер, например.

function myDate(input) { 
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 
    input = input.split('-'); 
    input[1] = months.indexOf(input[1]); 
    return new Date(+input[2], +input[1], +input[0]); 
} 

myDate('31-Dec-2014'); // Wed Dec 31 2014 00:00:00 GMT+0000 (GMT Standard Time) 

Пожалуйста, помните все даты генерируются в локальной временной зоне клиента, вы можете использовать UTC метод вместо этого.

Смежные вопросы