4

I have following code:

$date = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone('Asia/Karachi'));  
echo $date->format('Y-m-d H:i:s');

Output: 2015-08-26 17:46:05
Actual Result should be: 2015-08-26 13:46:05

How to set the time zone, so that actual output comes?

Matthias A. Eckhart
  • 5,136
  • 4
  • 27
  • 34
Sobia Safdar
  • 83
  • 1
  • 8

3 Answers3

5

Method 1 (Editing Php.ini)

1) Open your php.ini file

2) Add the following line of code to top of your php.ini file

date.timezone = "Asia/Karachi"

3) Restart php.

Note: You can find a list of timezone here: http://php.net/manual/en/timezones.asia.php

Method 2 (Using date_default_timezone_set)

In case you don't have access to the php.ini file, you can use date_default_timezone_set("Asia/Karachi"). Just put it in the entry point of your application.

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

Slay
  • 1,285
  • 4
  • 20
  • 44
4

use this line in your codes

date_default_timezone_set("Asia/Karachi"); 

like

  <?php 
    date_default_timezone_set("Asia/Karachi"); 
    echo date('d-m-Y H:i:s'); 
?>
Itz Raghu
  • 457
  • 2
  • 6
  • 16
1

It is better to keep it in the config file because even if you use the same function somewhere else, you will have to re-declare this statement.

  date_default_timezone_set("Asia/Karachi"); 

If you are using any framework like yii, CI or cake php.. keep this line in index.php file which basically later on loads rest of the framework.

Danyal Sandeelo
  • 12,196
  • 10
  • 47
  • 78