php date&strtotime

Probably I do something wrong but I can't see the point of it ....

Today is a one day of the week. I must know - how many days have elapsed from last monday to today?

$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

I have 2 identical scripts as above in the same directory on the same server

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

Couse the right answer is the first. And what to do with this situation?

use ceil() on the $ile_dni the differences are from the timestamp generated out of 'last Monday' and strtotime and i'm sure there is a better way to do this with date('N'), you could do

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

if you wanted ile_dni to be 0 on monday, 1 on tuesday etc..

Did you run those two scripts at the same time? I'm guessing there's a timezone/DST issue going on. Note that your method of computing date differences is very vulnerable to these kinds of issues. If you're using PHP 5.3 or higher, use date_diff.