我想在接下来的7天画一张万年历
$dt = new DateTime;
if (isset($_POST['annee']) && isset($_POST['semaine'])) {
$dt->setISODate($_POST['annee'], $_POST['semaine']);
} else {
$dt->setISODate($dt->format('o'), $dt->format('W'));
};
$annee= $dt->format('o');
$semaine= $dt->format('W');
$KlendrierPerpetuel="";
$KlendrierPerpetuel.='<table><tr>';
do {
$KlendrierPerpetuel.='<td>'.$dt->format('D').'</td>';
$dt->modify('+1 day');
} while ($semaine == $dt->format('W'));
$KlendrierPerpetuel.='</tr></table>';
echo $KlendrierPerpetuel;它会创建一个表宽为星期的日期,而不是下一天的7
发布于 2018-02-14 11:27:51
好吧..。实际上要简单得多。
$format = "y/m/d";
$date_arr = [];
for($i = 0; $i < 6; $i ++){
if($i = 0)
$date_arr[] = date($format);
else
$date_arr[] = date($format, strtotime("+$i day");
}strtotime可以从"+1天“或"+1周”这样的字符串中解析日期,因此使用第二天是非常简单的。所以你只需要循环这个过程,它就完成了。
PS :在你最初的帖子中,你似乎得到了一些post参数,你只需要把它们放在if的strtotime()中。
发布于 2018-02-14 14:03:30
您正在寻找的东西并不完全清楚,但我尽我所能添加了用户控件来实现它。您应该能够根据自己的需要对其进行修改:
<html>
<form method='post'>
<input type='numeric' name='year' value='<?= $_POST['year'] ?: date('Y') ?>'>
<input type='numeric' name='week' value='<?= $_POST['week'] ?: date('W') ?>'>
<input type='submit'>
</form>
<?php
$dt = new DateTime;
if (isset($_POST['year']) && isset($_POST['week'])) {
$dt->setISODate($_POST['year'], $_POST['week']);
} else {
$dt->setISODate($dt->format('o'), $dt->format('W'));
};
$year= $dt->format('o');
$week= $dt->format('W');
$KlendrierPerpetuel="";
$KlendrierPerpetuel.='<table><tr><td>'.$dt->format('M').'</td>';
do {
$KlendrierPerpetuel.='<td>'.$dt->format('d').'<br>'.$dt->format('D').'</td>';
$dt->modify('+1 day');
} while ($week == $dt->format('W'));
$KlendrierPerpetuel.='<td>'.$dt->format('M').'</td></tr></table>';
echo $KlendrierPerpetuel;这允许用户指定年份和周数,并显示该周的日期。
https://stackoverflow.com/questions/48777371
复制相似问题