Blog Posts » PHP » date_default_timezone_set

date_default_timezone_set

Saat menggunakan fungsi yang berhubungan dengan timezone (date, strtotime, dll), PHP mengharuskan agar kita men-set standar timezone pada script kita. Jika hal tsb tidak dilakukan maka PHP akan mengambil settingan di Sistem Operasi. Dan jika E_WARNING aktif maka akan menimbulkan pesan error seperti ini:

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Krasnoyarsk' for '7.0/no DST' instead in...


Mengapa dikatakan tidak safe?
Jika kita tidak menetapkan standar timezone pada script maka fungsi-fungsi yang saya sebutkan diatas akan selalu ngikut settingan timezone pada OS yang digunakan server/hosting dan ini adalah tidak standar karena setiap server bisa berbeda-beda dan ujung-ujungnya hanya bikin kita bingung.
Jika kita tidak punya akses terhadap php.ini maka cara menetapkan standar timezone di PHP adalah dengan menggunakan date_default_timezone_set.

[Textarea][RAW][Download]

  1. date_default_timezone_set('Asia/Jakarta');
  2. echo date('e'); // Asia/Jakarta
  3. echo date('O'); // +0700
  4. echo date('P'); // +07:00
  5. echo date('Z'); // 25200
  6. echo date('r'); // Fri, 07 Dec 2012 10:48:31 +0700


Asia/Jakarta adalah timezone identifier. Untuk timezone identifier yang lain ada di List of Supported Timezones.