Получить дату Javascript в формате 2011-04-01

Я видел это: как получить форматированное время даты, как 2009-05-29 21:55:57, используя JavaScript?

но мне нужны 0 перед датой из одной цифры (мне нужно 2011-04-01, а не 2011-4-1)

Я не люблю добавлять другой ненужный плагин для этого, так что если есть встроенная функция или функция SIMPLE в js/jquery, которая могла бы сделать это, я в порядке. Я надеюсь, что это не приведет к функции из 10 строк, просто чтобы проверить, был ли месяц единичным, а затем добавить ноль к нему.

В основном я использую плагин AnyTime js ( http://www.ama3.com/anytime/), но он выдает ошибку, если моя начальная дата не была в форме "гггг-мм-дд". Моим начальным значением по умолчанию является "сейчас", поэтому я пытаюсь преобразовать новый Date() в этот формат. Любая помощь?

ПРИМЕЧАНИЕ, пожалуйста, не давайте ссылки на плагины, так как я надеялся на ДЕЙСТВИТЕЛЬНО простое решение. я считаю, что использование плагина просто для исправления плагина не очень чисто.

6 ответов

Решение
   function getFormattedDate() {
        var date = new Date();
        var str = date.getFullYear() + "-" + getFormattedPartTime(date.getMonth()) + "-" + getFormattedPartTime(date.getDate()) + " " +  getFormattedPartTime(date.getHours()) + ":" + getFormattedPartTime(date.getMinutes()) + ":" + getFormattedPartTime(date.getSeconds());

        return str;
    }

    function getFormattedPartTime(partTime){
        if (partTime<10)
           return "0"+partTime;
        return partTime;
    }

Усилия vvk в значительной степени на деньги, вот небольшая модификация того же самого:

var getDate = (function() {
  function addZ(n) {
    return n<10? '0'+n : ''+n;
  }
  return function() {
    var d = new Date();
    return d.getFullYear()+'-'+addZ(d.getMonth()+1)+'-'+addZ(d.getDate());
  }
}());

Библиотека Any+Time(TM) включает объект с именем AnyTime.Converter специально для разбора и форматирования дат, поэтому вы могли бы сделать это:

(new AnyTime.Converter({format:"%Y-%M-%d"})).format(new Date());

Однако библиотека также по умолчанию использует текущую дату / время, если поле пустое или не соответствует спецификатору формата, так что вы действительно можете просто оставить поле пустым при отображении формы!

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

Я думаю, что вы ищете это

Этот красивый код охватывает все типы форматов

использовать этот синтаксис

var now = new Date();
now.format("mm/dd/yyyy");
Другие вопросы по тегам