2013-08-07 2 views
-1

Я пробовал свой уровень лучше, но не смог получить результат. Мне нужна дата в формате ГГГГ-ММ-ДД. Вот мой текущий код:Javascript date format

function AddDays(days) { 

      var thisDate = new Date(); 
      thisDate.setDate(thisDate.getDate() + days); 
      var dd = (thisDate.getFullYear() + '-' + (thisDate.getMonth() + 1) + '-' + thisDate.getDate()); 
      return dd; 

     } 

     alert(AddDays(365)); 

Я получаю "2014-8-7", как результат, но я хочу, чтобы получить его как YYYY-MM-DD. Мне нужно, чтобы он выглядел как «2014-08-07».

+1

Дубликат многих подобных вопросов , См. Также http://stackoverflow.com/questions/17996874/leading-0-missing-from-data-and-time –

+0

@Eugene, это вопрос jQuery. Это о JavaScript. – Joey

+0

Да, просто набрав это. Сожалею. –

ответ

0
function AddDays(days) { 

      var thisDate = new Date(); 
      thisDate.setDate(thisDate.getDate() + days); 
      return thisDate; 

     } 

alert(getReadableDate(AddDays(365))); 


function getReadableDate(date) { 
     return [date.getFullYear(), fillZeroes(date.getMonth() + 1), fillZeroes(date.getDate())].join('-'); 

     function fillZeroes(text) { 
      return (new Array(2 - (text || '').toString().length + 1)).join('0') + (text || ''); 
     } 
    } 
+1

Вы делаете это намного сложнее, чем необходимо. –

0

Я столкнулся с этой проблемой один раз. Мое решение было передать с помощью функции, которые добавляют ноль, если необходимо:

function addZero(date) 
{ 
    if (date < 10) 
     return "0"+date; 
    return date; 
} 

или меньше:

function addZero(date) 
{ 
    return (date < 10)? "0"+date : date; 
} 
-1

вам нужно это:

function AddDays(days) { 

      var thisDate = new Date(); 
      thisDate.setDate(thisDate.getDate() + days); 
      var dd = (thisDate.getFullYear() + '-' + ("0"+ (thisDate.getMonth() + 1)).slice(-2) + '-' + ("0" + thisDate.getDate()).slice(-2)); 
      return dd.toString('yyyy-MM-DD');; 
     } 
     alert(AddDays(365)); 

http://jsfiddle.net/w9fxr/1/

пересчитайте My дорогой друг, он будет обрабатывать весь месяц одинарной и двойной цифрой все

+0

Вы получите 2013-012-06 с этим. – EoiFirst

+0

nope, попробуйте себя – Notepad

0

Where can I find documentation on formatting a date in JavaScript?

Я думаю, что этот ответ должен помочь вам.

thisDate.getMonth() и thisDate.getDate() возвращают целое число, которое может иметь только одну цифру. Вы должны преобразовать его в строку, чтобы добавить "0":

Пример

var m = thisDate.getMonth()+1; // One digit month 
m = '' + (m<=9 ? '0' + m : m); // Two digit month 
-1

Попробуйте это:

var thisDate = new Date(); 

alert(thisDate.getFullYear() + '-' + ("0" + (thisDate.getMonth() + 1)).slice(-2) + '-' + ("0" + (thisDate.getDate() + 1)).slice(-2)); 

Fiddle

1

Вы должны проверить, если дата или месяц составляет менее 10, если это так, добавьте «0» до даты/месяца:

function AddDays(days) { 

     var dateObject = new Date(); 
     dateObject.setDate(new Date().getDate() + days); 
     var year = dateObject.getFullYear(); 
     var month = dateObject.getMonth()+1 < 10 ? "0" + (dateObject.getMonth()+1) : dateObject.getMonth()+1; 
     var date = dateObject.getDate() < 10 ? "0" + dateObject.getDate() : dateObject.getDate(); 
     return year + "-" + month + "-" + date; 

} 

alert(AddDays(365)); 
0

Это работает каждый раз:

var now = new Date(); 
var day = ("0" + now.getDate()).slice(-2); 
var month = ("0" + (now.getMonth() + 1)).slice(-2); 
var today = now.getFullYear() + "-" + (month) + "-" + (day); 
alert(today);