2012-01-02 4 views
0

取得:はYmdを私は、次の形式で「今週の」完全な日付の範囲を得る助けが必要、前の週の日付範囲のPHP

私は正常に「今月」完全な日付の範囲ではなく、「これを取得することができました

週単位の完全な日付範囲です。

これは、 "今月" のために私のコードです:

//Functions for later use 
function firstOfMonth() { 
    return date("Y-m-d", strtotime(date('m').'/01/'.date('Y').' 00:00:00')); 
} 

function lastOfMonth() { 
    return date("Y-m-d", strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')))); 
} 

//Setup the date_range variables 
$date_start = firstOfMonth(); 
$date_end = lastOfMonth(); 

すべてのヘルプは大歓迎です!

答えて

6

ご存知のように、「最初の月」のコードは間違っています。あなたが8月にいれば、7月8日から8月7日までの範囲が与えられます。そのようにするときは、正しいd/m/Y形式を使用してください。

週に関しては、これを試してみてください。

$start_week = strtotime("last monday midnight"); 
$end_week = strtotime("+1 week",$start_week); 

$start_week = date("Y/m/d",$start_week); 
$end_week = date("Y/m/d",$end_week); 
+1

これは月曜日の今週の先週のみ動作しません。もしその火曜日が昨日月曜日を過ごさないならば? –

+0

^はい。先週の月曜日は、$ thisWeeksMonday = strtotime( "last monday midnight")を実行する必要があります。 $ lastWeeksMonday = strtotime( ' - 1週間'、$ thisWeeksMonday); '。もちろん、あなたは今日も月曜日かどうかを確認する必要があります。また、答えにタイプミスがあります。 – musicliftsme

+0

@FranVerona編集をありがとう。 1)私はそれらの間違いを犯した、2)彼らはそのような長い間編集されていなかったことに驚いている! –

2

レイトンエバーソンは、あなたが正しいです。私は正しいと思うフォーマットは:

strtotime('-2 Monday');