下面是我遇到问题的代码
这里我将当前周的数字保存在一个变量$week中
<?php
$week=date('W')-1
?>这里我在url中张贴周数字,以便通过减少张贴$week数字,我试图获得前一周
<td width="120" height="70" align="center" style="border-bottom:1px dashed #000000; border-top:1px dashed #000000;">
<h1 style="color:#000000;"/>
<a href="ex2.php?week=<?=$week-1?>">
<img src="../images/previous_week.jpg" width="91" height="44" border="0" />
</a>
</td>以下代码的问题是.....
它可以正常工作到3月1日,但不能从3月的前一周开始显示unix时间戳,即1970年1月1日。
下面是从已过帐周数中获取前一周日期的代码
<?php
include ('class.php');
if(!isset($_GET['week']))
{
$count = $obj->getD();
if(date('N') == $count)
{
$prior_week = date('W') - 1;
if($prior_week == 0)
{
$prior_week = 52;
$year = date('Y') - 1;
} else
$year = date('Y');
echo date("d-m-Y", strtotime($year.'W'.$prior_week.'1'));
echo " (MON)~ ";
echo date("d-m-Y", strtotime($year.'W'.$prior_week.'7'));
echo " (SUN) ";
}
} else{
$count = $obj->getD();
$week=$_GET['week'];
if($week>=0)
{
if(date('N') == $count)
{
$prior_week = $week- 1;
if($prior_week == 0)
{
$prior_week = 52;
$year = date('Y') - 1;
}
else
$year = date('Y');
echo date("d-m-Y", strtotime(date('Y').'W'.$prior_week.'1'));
echo " (MON)~ ";
echo date("d-m-Y", strtotime(date('Y').'W'.$prior_week.'7'));
echo " (SUN) ";
}
}
}
?>发布于 2013-06-07 19:47:22
问题出在您传递给strtotime的日期格式中。
当数字是10时,你减去1,结果是:
date("Y-m-d",strtotime("2013W91"));而实际上你想做的是:
date("Y-m-d",strtotime("2013W091"));只需确保用0填充任何小于10的周数字
// ...
if ($prior_week < 10) {
$prior_week = "0".$prior_week;
}
echo date("d-m-Y", strtotime(date('Y').'W'.$prior_week.'1'));https://stackoverflow.com/questions/16983064
复制相似问题