0

我正在尝试启动并运行日历。尽管我对 PHP 不是那么好,但我还是设法让每月视图日历启动并运行得非常好。但是,球门柱已有所移动,并且权限类似于每周查看日历。当他们打开时,它将在表格中显示本周的所有天,然后可以选择前进一周并显示下一周或后一周。我为此苦苦挣扎了很多天,当我确信必须有一个简单的解决方案时,我的代码变得复杂而混乱。

我知道这是一个很大的问题,但如果有人能指出我正确的方向或给我一个简单的脚本让我可以继续生活,我将不胜感激

这是我到目前为止所拥有的

$week_number = date("W");
$year = date("Y");

if($week_number < 10){
   $week_number = "0".$week_number;
}

for($day=0; $day<=6; $day++)
{
  echo date('d-m-Y', strtotime($year."W".$week_number.$day))." | \n";
}
?>

如果'next_week'按钮并被点击(我没有包括自我发布表单的一部分以保持脚本简单),我设法通过在 $week_number 中添加 1 来启动并运行它,直到年份改变了,因为过去 53 周的数字进行了,我没有添加一种方法来增加或减少 $year 这就是一切都出错的地方

4

1 回答 1

2

DateTimeDateInterval是你的朋友 (PHP 5.3+)

试一试:

<?php

$weekModifier = 0;

$date = new DateTime();

if($date->format('N') !== 1) {
    $date->sub(new DateInterval('P'. $date->format('N') . 'D'));
}

$interval = new DateInterval('P'.abs($weekModifier).'W');

if($weekModifier > 0) {
    $date->add($interval);  
} else {
    $date->sub($interval);  
}

for($i = 1; $i <= 7; $i++) {
    echo $date->add(new DateInterval('P1D'))->format('l Y-m-d') . "<br>\n"; 
}

?>

将周设为 0 将使用本周。否则,您可以简单地使用 1, 2, 3, -,1 ,-2, -3 等...

在行动中看到它。

于 2014-04-26T04:28:09.657 回答