如何在任何给定的日期在本周获得周末日?
答
如果您正在寻找如下一个或上一个星期六(或任何其他工作日)strtotime
是你的朋友。
$prev = strtotime('-1 saturday');
$next = strtotime('saturday');
var_dump($prev, $next);
值得一提的是,strtotime
是相当昂贵的功能,所以多个计算将noticiably添加到您的执行时间。一个很好的折衷办法是使用它来获取起点,并使用其他date functions来推导更多日期。
答
get the current date.
get the current day of week. (0=monday, 6 = sunday)
days2weekend = 5 - current day of week
dateadd(currentdate, days, days2weekend)
答
你的问题有点难以遵循,但你的意思是从某个日期开始的“下个周末”?
你可以得到星期几的数字,然后看星期六和日期添加多少?这看起来像:
<?php
$dayNR = date('N'); //monday = 1, tuesday = 2, etc.
$satDiff = 6-$dayNR; //for monday we need to add 5 days -> 6 - 1
$sunDiff = $satDiff+1; //sunday is one day more
$satDate = date("Y-m-d", strtotime(" +".$satDiff." days"));
$sunDate = date("Y-m-d", strtotime(" +".$sunDiff." days"));
echo $satDate."\n";
echo $sunDate."\n";
?>
答
这是PHP精辟简单:
<?php
echo date('Y-m-d', strtotime('next Saturday'));
?>
答
我觉得内置的PHP函数的strtotime应该为你工作。例如:
strtotime('next saturday')
你应该提供更多的细节 - 你想要的*后落在*给定日期或之前* *在指定日期的周末?给定星期日时它应该如何表现? – 2011-01-11 07:32:31
http://bytes.com/topic/db2/answers/183442-weekend-date-given-date这将帮助你继续前进 – Egalitarian 2011-01-11 07:33:35
@Jon Skeet:我甚至都无法想象你甚至会输入这样的问题:-) – zerkms 2011-01-11 07:34:03