Я пытаюсь отобразить 9-дневные числа с помощью js.
С PHP это будет выглядеть так:
for($i = 0; $i < 4; $i++){
$date = new DateTime();
$date->sub(new DateInterval('P'.(4 - $i).'D'));
echo '<span class="day_nr">'.$date->format('d').'</span>';
}
$date = new DateTime();
echo '<span class="selected_day_nr day_nr">'.$date->format('d').'</span>';
for($i = 1; $i < 5; $i++){
$date = new DateTime();
$date->add(new DateInterval('P'.$i.'D'));
echo '<span class="day_nr">'.$date->format('d').'</span>';
}
Вот что я нашел в JS:
var date = new Date();
date.setDate(date.getDate() + 1); console.log(date)
Но это покажет всю дату, как: ср 21 фев 2018 11:23:30 GMT + 0100 (CET)
Как отобразить его только с номером дня? (21)
Ты можешь использовать .getDate()
чтобы получить дату месяца, представленного объектом Date. Например:
var date = new Date();
date.setDate(date.getDate() + 1); console.log(date.getDate())
Подражать PHP P
вариант, хорошей отправной точкой будет date.getTimezoneOffet()
Однако это не будет включать правильное форматирование, как с PHP.
Для получения дополнительной информации, посмотрите на документы. Вы также можете найти этот список немного более полезным.
Как уже говорилось ранее, Toastrackenigma вы можете использовать: getDate (), чтобы получить только то, что вы хотите.
Но для манипуляции с датами я могу посоветовать вам потрясающую библиотеку: https://momentjs.com/ что действительно полезно.
Спасибо @Toastrackenigma за (.getDate ())
Вот как работает цикл:
//4 days back
var date = new Date();
for(i = -4; i < 0; i++){
var date = new Date();
date.setDate(date.getDate() + i);
$('.panel-body .row .cold-12').append('<span class="day_nr">'+date.getDate()+'</span>');
}
//Today
var date = new Date();
$('.panel-body .row .cold-12').append('<span class="selected_day_nr day_nr">'+date.getDate()+'</span>');
//4 days forward
var date = new Date();
for(i = 1; i < 5; i++){
var date = new Date();
date.setDate(date.getDate() + i);
$('.panel-body .row .cold-12').append('<span class="day_nr">'+date.getDate()+'</span>');
}
Консоль: -4 дня, +4 дня