用JS显示9天的数字

时间:2018-02-20 10:25:25

标签: javascript php date date-formatting

我正在尝试用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)

3 个答案:

答案 0 :(得分:1)

您可以使用.getDate()获取Date对象所代表的月份日期。例如:

var date = new Date();
date.setDate(date.getDate() + 1); console.log(date.getDate())

要模拟PHP的P选项,一个很好的起点是date.getTimezoneOffet(),但这不包括与PHP一样的正确格式。

有关详细信息,请查看docs。您可能还会发现this list更有帮助。

答案 1 :(得分:1)

如前所述,Toastrackenigma可以使用:getDate()来只检索你想要的东西。 但是为了操纵日期,我可以建议你这个很棒的库:https://momentjs.com/这真的很有用。

答案 2 :(得分:0)

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