JavaScript / jQuery: лучший способ отформатировать результат вычисления даты [дубликаты]

0

Я использую следующую функцию, чтобы добавить количество дней к дате ввода даты (формат: yyyy-mm-dd).

Это отлично работает, но при необходимости не добавляет начальные нули, например, возвращает 2013-11-1 вместо 2013-11-01, что мне и нужно.

Что будет лучшим/самым коротким способом для форматирования вывода как yyyy-mm-dd - jQuery тоже будет работать?

 function calcTargetDate()
 {
     var timeFrame = 7;
     var targetDate = new Date( document.getElementById('date1').value );

     targetDate.setDate( targetDate.getDate() + parseInt(timeFrame) );
     document.getElementById('date2').value = ( targetDate.getFullYear() + '-' + (targetDate.getMonth() + 1) + '-' + targetDate.getDate() );
 }

Большое спасибо заранее за любую помощь в этом, Тим

  • 0
    jQuery - это библиотека манипулирования DOM. Это бесполезно здесь.
  • 0
    Спасибо, Баббло - это именно то, что мне было нужно.
Теги:
date
date-format
date-arithmetic

2 ответа

1
Лучший ответ

Включает ли lib вариант? moment.js может сделать это для вас легко с чем-то вроде:

var targetDate = moment( document.getElementById('date1').value );
targetDate.add('days', timeFrame); //or whatever unit your timeframe value is if not days
document.getElementById('date2').value = targetDate.format("YYYY-MM-DD");
  • 0
    Я посмотрел на это и решил использовать его. Это действительно здорово - большое спасибо!
1

Для любого форматирования даты я всегда использую moment.js

 var myDate = new Date(2013, 10, 1); // remember month zero-indexed in javascript
 console.log(myDate);
 console.log(moment(myDate).format('YYYY-MM-D'));
  • 0
    Это тоже здорово - большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню