Guys I am trying to get correct Indian time and date in PHP
I have tried this code:
$date = date("d/m/Y");
$date1 = date("H:i a");
if(function_exists('date_default_timezone_set'))
{
date_default_timezone_set("Asia/Kolkata");
}
echo $date;
echo $date1;
But I am not getting correct time. I am getting time which is 4.30
Hours late. Is there any mistake in my code?
Put the timezone declaration first before using any date function:
// set the timezone first
if(function_exists('date_default_timezone_set')) {
date_default_timezone_set("Asia/Kolkata");
}
// then use the date functions, not the other way around
$date = date("d/m/Y");
$date1 = date("H:i a");
echo $date . '<br/>';
echo $date1;
The cleaner option is
$date = new DateTime(null, new DateTimezone("Asia/Kolkata"));
echo $date->format('d/m/y').'<br/>';
echo $date->format('H:i a');
This way, you wouldn't alter global state, so other pieces of the code can still use other timezones
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With