php DateTime 在for循环中添加1周12次
php DateTime add 1 week 12 times in a for loop
我正在制作一个考勤系统,当用户选择开始日期时,它将在数据库中为 weekId = 1 到 12 等创建 12 个条目
但这真的无关紧要,主要是我想知道是否有更好的方法来增加下面代码中的周输出。
<?php
$d=strtotime("today");
echo date("Y-m-d h:i:sa", $d) . "<br>";
for ($x = 0; $x <= 10; $x++) {
$d=strtotime("+1 week", $d);
echo date("Y-m-d h:i:sa", $d) . "<br>";
}
?>
一直在字符串和日期之间来回转换,效率比较低。 PHP 包含一个 DatePeriod class 是为迭代日期而设计的。
你可以这样使用它:
$begin = new DateTime('2016-03-01');
$end = new DateTime('2016-03-01');
$end->modify('+12 weeks 1 day'); // Need an extra day. Last day not included.
// Period from begin to end, at 1 week intervals.
$daterange = new DatePeriod($begin, new DateInterval('P1W'), $end);
foreach($daterange as $date){
echo $date->format("Ymd") . "\n";
}
你的代码是正确的。简单的,你可以这样做空:
for( $x = 0; $x < 12; $x++ )
{
echo date( "Y-m-d h:i:sa", strtotime("today +{$x} week")) . "<br>\n";
}
我正在制作一个考勤系统,当用户选择开始日期时,它将在数据库中为 weekId = 1 到 12 等创建 12 个条目
但这真的无关紧要,主要是我想知道是否有更好的方法来增加下面代码中的周输出。
<?php
$d=strtotime("today");
echo date("Y-m-d h:i:sa", $d) . "<br>";
for ($x = 0; $x <= 10; $x++) {
$d=strtotime("+1 week", $d);
echo date("Y-m-d h:i:sa", $d) . "<br>";
}
?>
一直在字符串和日期之间来回转换,效率比较低。 PHP 包含一个 DatePeriod class 是为迭代日期而设计的。
你可以这样使用它:
$begin = new DateTime('2016-03-01');
$end = new DateTime('2016-03-01');
$end->modify('+12 weeks 1 day'); // Need an extra day. Last day not included.
// Period from begin to end, at 1 week intervals.
$daterange = new DatePeriod($begin, new DateInterval('P1W'), $end);
foreach($daterange as $date){
echo $date->format("Ymd") . "\n";
}
你的代码是正确的。简单的,你可以这样做空:
for( $x = 0; $x < 12; $x++ )
{
echo date( "Y-m-d h:i:sa", strtotime("today +{$x} week")) . "<br>\n";
}