2012-03-26 8 views
0

おそらく私は間違っていますが、その点を見ることはできません....php date&strtotime

今日は一曜日です。私は知る必要があります - 最後の月曜日から今日までに何日が経過しましたか?

$date_1d = date('Y-m-d', strtotime ('last Monday'));      
// last monday 

$date_today = date('Y-m-d');            
// actual date, today 

$ile_dni = (strtotime($date_today) - strtotime($date_1d))/(60*60*24); 
// difference in days - how many days have elapsed from today to last monday 

正しい答えが最初である同じサーバ

first said: 

&date_1d = > 2012-03-19 

$date_today => 2012-03-26 

strtotime($date_today) = > 1332720000 

strtotime($date_1d) = > 1332115200 

$ile_dni = > 7 

second said: 

&date_1d = > 2012-03-19 

$date_today => 2012-03-26 

strtotime($date_today) = > 1332712800 

strtotime($date_1d) = > 1332111600 

$ile_dni = > 6.9583333333333 

クーゼ上の同じディレクトリに上記のように、私は2つの同じスクリプトを持っています。そして、この状況にどうしたらいいですか?

+3

'date( 'N')' – Vytautas

答えて

1

$ile_dni違いで使用ceil()が外に生成されたタイムスタンプ「前月曜日」とのstrtotimeからのものであり、私はdate('N')でこれを行うには良い方法があると確信している、あなたは何ができる

$ile_dni = date('N')-1; 

月曜日にile_dniを0にしたい場合は火曜日に1を返します。

+0

thnks、今私はcell()を試してみましょうされます。タンクス – Andrew

1

これら2つのスクリプトを同時に実行しましたか?私は、タイムゾーン/ DSTの問題が続いていると推測しています。日付の差異を計算する方法は、この種の問題に対して非常に脆弱であることに注意してください。 PHP 5.3以降を使用している場合は、date_diffを使用してください。

+0

thnksさんの助けを借りて – Andrew