Mujahid
Mujahid

Reputation: 1237

PHP Datetime Error

I am having an issue with php date() function.

When I save the date in mysql datebase the hours shows 4 hours less than my current time.

My php code is below: $add_date = date("Y-m-d H:i:s");

It saves the time in database as

2011-08-03 07:51:26

But is should show

2011-08-03 13:22:26

Can anybody tell me how to fix it

Thanks

Upvotes: 0

Views: 1592

Answers (4)

amigura
amigura

Reputation: 139

this will add hosted server time not local time $add_date = date("Y-m-d H:i:s");

use strtotime() to add hours and minutes

$newdate = date("Y-m-d H:i:s",strtotime('+ 5 hours 30 minutes'.$row['db_date']));

Upvotes: 0

Saad Imran.
Saad Imran.

Reputation: 4530

@Mujahid If the printed time and the saved time are the same it probably means your server is not in the same timezone as you. With that said, you have to manually set the default timezone for your PHP script at the top of the file, or get the DateTime by defining your timezone explicitly. Here's the code:

$dateTime = new DateTime("now", new DateTimeZone('America/Los_Angeles'));
$add_date = $dateTime->format("Y-m-d H:i:s");
echo $add_date;

Here's a list of time zones that PHP supports, just find yours and replace America/Los_Angeles with it.

http://php.net/manual/en/timezones.php

Here's a good tutorial on PHP DateTime and DateTimeZone...

http://ditio.net/2008/06/03/php-datetime-and-datetimezone-tutorial/

Hope this helps. Good luck.

Upvotes: 2

Dan Grossman
Dan Grossman

Reputation: 52382

Make the time zone setting of the MySQL server and the web server the same.

Upvotes: 0

Nemanja
Nemanja

Reputation: 1535

You have to set a valid time zone - it seems you don't have an appropriate time zone set up in php environment for your location.

Check out

http://www.php.net/manual/en/function.date-default-timezone-set.php

It should give you a clue how to set up the correct time zone in php.

Upvotes: 3

Related Questions