2015-01-12 14 views
2

меня создать этот JQuery, которые возвращают мне дату в формате: YYYY-MM-DDНестандартная функция jQuery не работает должным образом?

Это мой код:

var d = new Date(); 
var day = d.getDate(); 
day = day.length > 1 ? day : '0' + day; 
var month = d.getMonth() + 1; 
month = month.length > 1 ? month : '0' + month; 
var year = d.getFullYear(); 
var date = (year+"-"+month+"-"+day);  

Проблема в переменной "день": Это supose вернуть мне день, например, если день в месяце «9», он должен вернуть мне 09 (2015-01-09); если день в месяце «12», он должен вернуть мне 12 (2015-01-12). Но мой код возвращает меня в примере день «12»: 2015-01-012 - он ставит ноль, но это не shoudl, я понятия не имею, почему это ставит ноль ...

здесь jsfiddle: http://jsfiddle.net/b6afckx5/

НАСТОЯЩЕМУ спасибо за помощь

ответ

1
var day = d.getDate(); 
day = (day >= 10)? day : '0' + day; 

JS Fiddle

+0

Проверьте мой ответ с обновленной скрипкой. Это отлично работает для меня. – Sadikhasan

+0

Ваше условие неверно для «логики», чтобы поставить ноль. – Sadikhasan

1

day это число, а не строка, то она не имеет length свойство, поэтому day.length не определено. Вы должны преобразовать его в строку первой:

var day = d.getDate().toString(); 

Аналогично за месяц:

var month = (d.getMonth() + 1).toString(); 
1

день Номер не делаешь имеют свойство длины. Вы должны проверить, если она меньше 10 предварять 0.

day = day < 10 ? '0' + day : day 
1

длина не принимает. ваш код может быть таким:

var d = new Date(); 
var day = d.getDate(); 
day = day >9 ? day: '0' + day ; 
var month = d.getMonth() + 1; 
month = month < 10 ? '0' + month : month; 
var year = d.getFullYear(); 
var date = (year+"-"+month+"-"+day);  

$(function(){  
    $('#date').append(date); 
}); 
Смежные вопросы