Jangan pernah bergantung ke konfigurasi server untuk menentukan timestamp, karena kita belum tentu tau/bisa menyesuaikan timezone dengan yang kita kehendaki.
Bila anda terbiasa menggunakan

<?php
$timestamp = date('Y-m-d G:i:s');

untuk mengambil waktu saat ini di server/komputer yang anda gunakan. Cara tersebut bergantung dengan konfigurasi date.timezone di php.ini, setiap server yang saya gunakan menggunakan

date.timezone = 'Asia/Jakarta'

menggunakan zona waktu WIB. Jika anda tidak memiliki hak untuk merubah timezone di php.ini, gunakan Datetime disisipkan zona waktu yang dikehendaki.

Berikut ini contoh timestamp untuk zona waktu Indonesia (Jakarta (WIB), Makassar (WITA), Jayapura (WIT)).

<?php
 
echo "zona waktu dari server: " . date('Y-m-d G:i:s') . " \n";
 
$tz = 'Asia/Jakarta';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
echo "WIB  : $timestamp \n";
 
$tz = 'Asia/Makassar';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
echo "WITA : $timestamp \n";
 
$tz = 'Asia/Jayapura';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
echo "WIT  : $timestamp \n";

hasil menjalankan script diatas

zona waktu dari server: 2020-02-10 10:46:34 
WIB  : 2020-02-10 10:46:34 
WITA : 2020-02-10 11:46:34 
WIT  : 2020-02-10 12:46:34

bandingkan dengan server yang tidak diset timezone di php.ini

zona waktu dari server: 2020-02-10 3:46:34 
WIB  : 2020-02-10 10:46:34 
WITA : 2020-02-10 11:46:34 
WIT  : 2020-02-10 12:46:34

terlihat perbedaanya kan di zona waktu dari server. Dengan menggunakan menyetting zona waktu yang diinginkan kita akan mendapatkan hasil yang konsisten.

Leave a comment

Your email address will not be published. Required fields are marked *