businessesatoz
asked on
php timestamp function returns a wrong value
I used php timestamp function. its returning values for dates and to calculate number of days between two dates.
but I observed from 8th March its not giving correct answer.
When I run this for each date and see I saw that difference of timestamps for 7th March & 8th march is not 86400. its 82800. Why is that.?
But thereafter its again give correct difference between dates. but its cause for following function to return wrong answer.
Function is to see the Week Number of any given date. Based on a given date weeks are switching every Tuesday.
but I observed from 8th March its not giving correct answer.
When I run this for each date and see I saw that difference of timestamps for 7th March & 8th march is not 86400. its 82800. Why is that.?
But thereafter its again give correct difference between dates. but its cause for following function to return wrong answer.
Function is to see the Week Number of any given date. Based on a given date weeks are switching every Tuesday.
function get_week_n($input_date){
$base_date = strtotime("2009-02-24"); //which is starting the week# 01
$cal_date = strtotime($input_date);
$diff = $cal_date - $base_date;
$totaldays = (int)floor($diff / (60*60*24));
$w_l1 = (int)floor($totaldays/7);
$w_l2 = $w_l1 % 4;
$week_n = $w_l2+1;
return $week_n;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
No.
base date should start from 2009-02-24.
if you put $input_date='2009-04-28' it should be 63 days. but this returns 62 days and calculate. thats wrong.
but if you try it in localhost its return results with 63. this is happening when its uploaded to server.
I need it to calculate it with 63 days.
base date should start from 2009-02-24.
if you put $input_date='2009-04-28' it should be 63 days. but this returns 62 days and calculate. thats wrong.
but if you try it in localhost its return results with 63. this is happening when its uploaded to server.
I need it to calculate it with 63 days.
Don't rely on seconds use days instead
<?php
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
Its working correct
Check that the following:
Open in new window