0

是否可以使用 php 每周自动更新日期?

例如,我有一个每周一更新的每周预测。标题将显示为“6 月 28 日星期五的预测”。

<h1>- Forecast for Friday June 28th -</h1>

然后在下一个星期一,我想将标题中的日期自动更新为下一个星期五。

这可能用php吗?

4

4 回答 4

1

这就是你要找的:

switch (date('N'))
{

  case 5:
    $time = time();
    break;

  case 6:
  case 7:
    $time = strtotime('last Friday');
    break;

  default:
    $time = strtotime('next Friday');

}

echo date('l F jS', $time);

检查日期功能以获得不同的格式选项。

虽然您确定要等到星期一才能显示下星期五的预报吗?当然它应该在星期六更新到下一周(否则您将预测过去的日期)?如果是这样,只需删除case 6/case 7部分。

于 2013-06-25T15:20:58.270 回答
0
$currDay = date('w');
$delta = $currDay==6 ? 6 : 5-$currDay;

$date = new DateTime();
$date->add(new DateInterval('P'.$delta.'D'));
echo $date->format('D M jS');
于 2013-06-25T15:35:04.740 回答
0

它的编码非常简单,可以尽可能简单地解释。如果 $today 不是星期五,该脚本会计算距离下星期五还有多少天。

希望对你有帮助!

<?php
$now    = time(); // current timestamp
$today  = date("w", $now); // "w" returns the weekday (number)
$friday = 5; // 5th day of the week (sunday = 0)

if ($today == $friday) {
    $ts       = $now; // today is friday, don't change the timestamp
    $daysLeft = 0; // no days left!
} else {
    if ($today == 6) {
        $daysLeft = 6; // saturday is bigger then friday
    } else {
        $daysLeft = $friday-$today; // get the left days
    }

    $ts = $now + 84600 * $daysLeft; // now + seconds of one day * days left
}
?>

<h1>
    - Forecast for <?php echo date("D M d", $ts) ?>-
</h1>
于 2013-06-25T15:31:45.813 回答
0

是的。查看date()格式化并strtotime()快速创建相对时间戳:

以下内容应该可以帮助您入门:

echo date('l F jS', strtotime('monday'));

注意:如果您使用 PHP > 5.3,您应该查看DateTime 类

于 2013-06-25T15:21:29.040 回答