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
.