Ответ 1
( '0' + (myDate.getMonth()+1) ).slice( -2 );
Пример: http://jsfiddle.net/qaF2r/1/
У меня есть jQuery script, который возвращает текущую дату в текстовое поле. Однако, когда отображается месяц с только одной цифрой (например, 8), я хочу, чтобы он поместил 0 перед ним (например, 08) и не поместил 0 перед ним, если он имеет 2 цифры (например, 11).
Как я могу это сделать? Надеюсь, ты сможешь понять мой вопрос. Вот мой код jQuery:
var myDate = new Date();
var prettyDate =myDate.getDate() + '' + (myDate.getMonth()+1) + '' + myDate.getFullYear();
$("#date").val(prettyDate);
( '0' + (myDate.getMonth()+1) ).slice( -2 );
Пример: http://jsfiddle.net/qaF2r/1/
Мне не нравится так много конкатенации строк:
var month = myDate.getMonth()+1,
prettyData = [
myDate.getDate(),
(month < 10 ? '0' + month : month),
myDate.getFullYear()
].join('');
Вы можете использовать что-то вроде:
function addZ(n) {
return (n < 10? '0' : '') + n;
}
var myDate = new Date();
var newMonth = myDate.getMonth()+1;
var prettyDate =myDate.getDate() + '' + (newMonth < 9 ? "0"+newMonth:newMonth) + '' + myDate.getFullYear();
$("#date").val(prettyDate);
Существует несколько JS-библиотек, которые обеспечивают хорошее форматирование строк. Это делает стиль С#. http://www.masterdata.dyndns.org/r/string_format_for_javascript/
(myDate.getMonth() + 1).toString().replace(/(^.$)/,"0$1")
Я люблю регулярное выражение:)