用 JS 显示 9 天的数字

Display 9 day numbers with JS

我正在尝试用 js 显示 9 天的数字。

在 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)

但这会显示整个日期,例如:2018 年 2 月 21 日星期三 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 的正确格式。

有关更多信息,请查看 docs. You may also find this list 更有帮助。

感谢@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 天

正如 Toastrackenigma 之前所说,您可以使用:getDate () 来仅检索您想要的内容。 但是对于日期的操作,我可以建议您使用很棒的库:https://momentjs.com/,它非常有用。