2011-01-11 74 views
3

例如,得到今天的週末。如何在任何給定的日期在本週獲得週末日?

+3

你應該提供更多的細節 - 你想要的*後落在*給定日期或之前* *在指定日期的週末?給定星期日時它應該如何表現? – 2011-01-11 07:32:31

+0

http://bytes.com/topic/db2/answers/183442-weekend-date-given-date這將幫助你繼續前進 – Egalitarian 2011-01-11 07:33:35

+0

@Jon Skeet:我甚至都無法想象你甚至會輸入這樣的問題:-) – zerkms 2011-01-11 07:34:03

回答

4

如果您正在尋找如下一個或上一個星期六(或任何其他工作日)strtotime是你的朋友。

$prev = strtotime('-1 saturday');  
$next = strtotime('saturday'); 

var_dump($prev, $next); 

值得一提的是,strtotime是相當昂貴的功能,所以多個計算將noticiably添加到您的執行時間。一個很好的折衷辦法是使用它來獲取起點,並使用其他date functions來推導更多日期。

2
get the current date. 
get the current day of week. (0=monday, 6 = sunday) 
days2weekend = 5 - current day of week 
dateadd(currentdate, days, days2weekend) 
1

你的問題有點難以遵循,但你的意思是從某個日期開始的「下個週末」?

你可以得到星期幾的數字,然後看星期六和日期添加多少?這看起來像:

<?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"; 
?> 
3

這是PHP精闢簡單:

<?php 

echo date('Y-m-d', strtotime('next Saturday')); 

?> 
相關問題