php日期函数和计算一周中的天数,以确保跳过周末
我昨天设置了这个旋转日历,我想我可能会遇到问题,今天果然出现了我预期的问题。日子一变日期就变了。它没有像昨天那样跳过周末,而是显示了周六而不是周一。它只假设显示周一到周五和+3,然后返回到周一到周五。示例代码:php日期函数和计算一周中的天数,以确保跳过周末,php,sql,Php,Sql,我昨天设置了这个旋转日历,我想我可能会遇到问题,今天果然出现了我预期的问题。日子一变日期就变了。它没有像昨天那样跳过周末,而是显示了周六而不是周一。它只假设显示周一到周五和+3,然后返回到周一到周五。示例代码: echo "Today"; echo date('m/d'); echo "<br>"; echo substr(date('l/m/d', strtotime('+1 day')), 0, 2). date('m/d', strtotime('+1 day')); ec
echo "Today";
echo date('m/d');
echo "<br>";
echo substr(date('l/m/d', strtotime('+1 day')), 0, 2). date('m/d', strtotime('+1 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+2 day')), 0, 1). date('m/d', strtotime('+2 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+5 day')), 0, 1). date('m/d', strtotime('+5 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+6 day')), 0, 1). date('m/d', strtotime('+6 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+7 day')), 0, 1). date('m/d', strtotime('+7 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+8 day')), 0, 2). date('m/d', strtotime('+8 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+9 day')), 0, 1). date('m/d', strtotime('+9 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+12 day')), 0, 1). date('m/d', strtotime('+12 day'));
echo "<br>";
echo substr(date('l/m/d', strtotime('+13 day')), 0, 1). date('m/d', strtotime('+13 day'));
echo“今日”;
回音日期(“m/d”);
回声“
”;
echo substr(日期('l/m/d',标准时间('+1天')),0,2)。日期('m/d',标准时间('+1天');
回声“
”;
回显子序列(日期('l/m/d',标准时间('+2天')),0,1)。日期('m/d',标准时间('+2天');
回声“
”;
回显子序列(日期('l/m/d',标准时间('+5天')),0,1)。日期('m/d',标准时间('+5天');
回声“
”;
回显子序列(日期('l/m/d',标准时间('+6天')),0,1)。日期('m/d',标准时间('+6天');
回声“
”;
echo substr(日期('l/m/d',标准时间('+7天')),0,1)。日期('m/d',标准时间('+7天');
回声“
”;
echo substr(日期('l/m/d',标准时间('+8天')),0,2)。日期('m/d',标准时间('+8天');
回声“
”;
回显子序列(日期('l/m/d',标准时间('+9天')),0,1)。日期('m/d',标准时间('+9天');
回声“
”;
回显子序列(日期('l/m/d',标准时间('+12天')),0,1)。日期('m/d',标准时间('+12天');
回声“
”;
echo substr(日期('l/m/d',标准时间('+13天')),0,1)。日期('m/d',标准时间('+13天');
显然,mode没有完成工作,我如何确保总是跳过周末
此外,我将其浓缩到一个sql查询中,如下所示:(实际代码)
sum(case when cast(a.follow_up as date)=cast(GETDATE()as date)然后1 else 0 end)'Today
“.date('m/d')”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up作为日期))='1'然后1,否则0结束)“.substr(日期('l/m/d',strotime('+1天')),0,2)。“
”.date('m/d',strotime('+1天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up作为日期))='2'然后1,否则0结束)“.substr(日期('l/m/d',strottime('+2天')),0,1)。“
”.date('m/d',strottime('+2天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up as date))='3'然后1,否则0结束)“.substr(日期('l/m/d',标准时间('+5天')),0,1)。“
”.date('m/d',标准时间('+5天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up作为日期))='4'然后1,否则0结束)“.substr(日期('l/m/d',strottime('+6天')),0,1)。“
”.date('m/d',strottime('+6天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up as date))='5'然后1,否则0结束)“.substr(date('l/m/d',strottime('+7天')),0,1)。“
”.date('m/d',strottime('+7天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up as date))='6'然后1,否则0结束)“.substr(日期('l/m/d',标准时间('+8天')),0,2)。“
”.date('m/d',标准时间('+8天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up作为日期))='7'然后1,否则0结束)“.substr(日期('l/m/d',strottime('+9天')),0,1)。“
”.date('m/d',strottime('+9天')。”,
求和(DATEDIFF(dd,cast(GETDATE()作为日期),cast(a.follow_up作为日期))='8'然后1,否则0结束)“.substr(日期('l/m/d',strottime('+12天')),0,1)。“
”.date('m/d',strottime('+12天')。”,
求和(DATEDIFF(dd,cast(GETDATE()为日期),cast(a.follow_up为日期))='9'然后1,否则0结束)“.substr(日期('l/m/d',标准时间('+13天')),0,1”。
”.date('m/d',标准时间('+13天')。“,
date('N')将以1-Monday到7-Sunday的格式给出一周中的某一天所以,如果我们减去1得到0-6,然后用它回到前几天,它会带我们回到上周一 ie星期一=1,1-1=0,-0天是星期一
星期二=2,2-1=1,-1天是星期一
..
星期五=5,5-1=4-4天是星期一
$lastmonday=strtotime("-".(date("N")-1)." days");
for($loop=0;$loop<14;$loop++)
{
$theday=strtotime("+".$loop." days", $lastmonday);
if(date("N", $theday)>5)
{
echo 'weekend';
}
else
{
echo date('D m/d');
}
echo "<br>";
}
$lastmanday=strottime(“-”(日期(“N”)-1)。“天”);
对于($loop=0;$loop5)
{
回声“周末”;
}
其他的
{
回音日期('D m/D');
}
回声“
”;
}
标准时间(“-”(日期(“N”)-1)。“天”)
将带您返回到星期一,然后使用strotime(“+1天,$lastmanday”)代码>您可以使用日期(“付款交单”)代码>与其切碎“l/m/d”这可能是我在寻找的答案waygood,我将尝试一下。谢谢。或者使用循环1-14,日期(“N”)不大于5 ie 6-Satuday 7-SundayI必须查看“N”做了什么,ISO-8601数字表示一周中的某一天(在PHP 5.1.0中添加)。
$lastmonday=strtotime("-".(date("N")-1)." days");
for($loop=0;$loop<14;$loop++)
{
$theday=strtotime("+".$loop." days", $lastmonday);
if(date("N", $theday)>5)
{
echo 'weekend';
}
else
{
echo date('D m/d');
}
echo "<br>";
}