2016-11-25 1 views
1

У меня есть строка, такая как 2016/1/1, которую я хочу изменить в надлежащем формате, например 2016/01/01 (yyyy/mm/dd). Формат вывода также должен быть строкой.Форматирование даты строки Javascript в формате специального формата

Каков правильный способ?

+2

Что делает этот формат подходящим? –

ответ

2

Вот кусок кода, который я часто использую:

function yyyymmdd(dte) { 
    var _date = new Date(dte); 
    var mm = _date.getMonth() + 1; // getMonth() is zero-based 
    var dd = _date.getDate(); 

    return [_date.getFullYear(), 
      "/", 
      (mm>9 ? '' : '0') + mm, 
      "/", 
      (dd>9 ? '' : '0') + dd 
     ].join(''); 
} 

var date = "1/1/2010"; 
yyyymmdd(dte); // returns "2010/01/01" 

Это простой формат я придумал, что мне нравится. Вероятно, есть много способов приблизиться к этому коду.

Это немного более чистая версия, которая была предложена мне позже.

function yyyymmdd(dte) { 
    var _date = new Date(dte); 
    var mm = _date.getMonth() + 1; // getMonth() is zero-based 
    var dd = _date.getDate(); 

    return [_date.getFullYear(), 
      (mm>9 ? '' : '0') + mm, 
      (dd>9 ? '' : '0') + dd 
     ].join('/'); 
} 
0

Обработка дат в JavaScript, может быть боль, альтернативное решение заключается в использовании momentjs

Библиотека может быть найдена here

Вы можете легко формат даты в самых различных форматах, используя .format() опция:

var dateTime = new Date(); 
dateTime = moment(dateTime).format("YYYY/MM/DD"); 
0

Используя Datejs, вы передаете формат для .toString().

Пример

Date.parse('2016/1/1').toString('yyyy-MM-dd') 
// "2016-01-01" 

Надеется, что это помогает.

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