#javascript #jquery #date #datepicker
#javascript #jquery #Дата #указатель даты
Вопрос:
У меня есть функция ниже, которая берет строку из datepicker и превращает ее в объект date, чтобы я мог добавить к ней 30 дней. Оттуда я пытаюсь вернуть новую дату в виде строки с добавлением к ней 30 дней в формате (мм / дд / гг).
Когда срабатывает первое предупреждение, оно корректно добавляет 30 дней к выбранной дате и показывает это для выбранной даты как «03.05.2011»:
Чт, 02 июня 2011 00:00:00 GMT 0100 (летнее время GMT)
Второе предупреждение показывает
5/2/2011
Кажется, я не могу правильно отформатировать дату и взять «05/03/2011» и вернуть «06/02/2011». Я мог бы просто указать месяц 1, но мне не помешала бы некоторая помощь, пожалуйста, и покажите мне, что я делаю неправильно.
$('#sign_date').datepicker({
onSelect: function(dateText, inst) {
var d = new Date(dateText);
d.setDate(d.getDate() 30);
alert(d);
var date = d.getDate();
var month = d.getMonth();
var year = d.getFullYear();
alert(month '/' date '/' year)
}
});
Также я думаю, что то, как я это делаю, будет показывать дни и месяц, например, Jan = 1 и 1st = 1, и я бы хотел, чтобы это было Jan = 01 и 1st = 01
Спасибо
Ответ №1:
Для начальных нулей:
// add leading zero if the length equals 1
if (month < 10) month = "0" month;
if (day < 10) day = "0" day;
Не забудьте также добавить 1 к вашему месяцу до использования этого кода, поскольку getMonth()
возвращает 0 для января и так далее:
var month = d.getMonth() 1;
Комментарии:
1. Я могу добавить 30 дней, но, похоже, не могу вернуть дату в правильном формате
2. @jim, извините, я заканчивал свой ответ, когда отправлял то, что, как я думал, было первой половиной вашей проблемы.
Ответ №2:
Сюрприз, сюрприз… getMonth()
Метод возвращает месяц в диапазоне 0..11.
Ответ №3:
Ответ от Келли меня устраивает
Просто изменил это
if(month<9) month = "0" (month 1);
if(date<10) day = "0" date;
Комментарии:
1. С вашим текущим кодом, если исходный код
month
== 9, вы получите010
.2. Мммм, вы правы. Это должно быть (месяц<9), потому что мне нужны месяцы от 1-12, а не от 0-11