Sejak versi 2021, PHPMaker menyimpan data yang terkait dengan pengaturan Locale di dalam file project. Itu artinya, jika kita belum pernah mengganti pengaturan ini, maka PHPMaker akan membangkitkan pengaturan tadi ke dalam file berekstensi .json dalam sub-folder locale berdasarkan file .json aslinya.
Jika kita sudah pernah menyesuaikan pengaturan ini melalui menu Tools -> Locale Settings, maka perubahan itu akan disimpan di dalam file project PHPMaker 2021. Ketika file project ini dibuka kembali dan generate ulang file script melalui PHPMaker di waktu yang akan datang, maka pengaturan tersebutlah yang digunakan.
Sedangkan data asli Locale yang terdapat di file .json asal, tidak mengalami perubahan. Anda dapat membuktikannya dengan membuka file .json yang berada di dalam sub-folder locales, menggunakan aplikasi teks editor seperti Notepad++. Sub-folder locales tersebut berada di bawah folder installasi PHPMaker 2021.
Jika Anda memperhatikan lebih detail saat menyesuaikan pengaturan Locale tadi, di sana ada satu pengaturan bernama time_zone. Fungsinya untuk mengatur Timezone yang akan digunakan di aplikasi web yang dihasilkan oleh PHPMaker. Nilai yang diisikan pada pengaturan time_zone tadi dapat Anda lihat referensinya melalui PHP: List of Supported Timezones
Atau, jika selama ini Anda sudah menggunakan Masino Extensions untuk PHPMaker, maka Anda cukup melihatnya dari table timezone pada database demo maupun database yang digunakan sebagai dasar untuk memulai project baru di PHPMaker yang menggunakan Masino Extensions. Jadi, Anda tidak perlu lagi mengambil dari list timezone pada web PHP di atas tadi.
Selain pengaturan Timezone yang dapat kita tentukan dari menu Tools -> Locale Settings tadi, PHPMaker menyediakan satu pengaturan lagi yang bisa kita gunakan untuk memastikan data yang tersimpan di database (hanya untuk MySQL, PostgreSQL, dan Oracle) sesuai dengan pengaturan timezone yang kita inginkan. Pengaturan itu bernama Database time zone (for SET TIME ZONE) yang bisa Anda lihat dari menu Tools -> Advanced Settings pada project PHPMaker.
Sayangnya, dokumentasi PHPMaker 2021 belum menjelaskan secara detail nilai yang dapat diisikan di pengaturan yang terakhir ini. Meskipun demikian, dengan bantuan Google, kita bisa memastikan bahwa pengaturan ini tidak sama dengan pengaturan Locale yang sudah kita bahas di awal tadi.
Untuk pengaturan Database time zone (for SET TIME ZONE), nilai yang diisikan adalah nilai jam-nya yang dibandingkan secara relatif ke nilai UTC. Contoh, untuk pengaturan time_zone Asia/Jakarta pada database MySQL, maka nilai Database time zone (for SET TIME ZONE) adalah +07:00. Itu artinya, time_zone Asia/Jakarta selisihnya lebih besar 7 jam dibandingkan dengan time_zone UTC (Europe/London).
Demikian seterusnya untuk pengaturan time_zone lainnya, kita harus terlebih dulu mengetahui berapa jam selisihnya dengan time_zone UTC yang menjadi acuan perhitungan. Jika nilai pada pengaturan Database time zone (for SET TIME ZONE) dikosongkan, maka aplikasi web yang dihasilkan oleh PHPMaker akan mengambil nilai time_zone yang didefinisikan pada pengaturan Locale.
Jadi, untuk memastikan pengaturan Timezone sesuai yang kita inginkan, kita bisa saja menentukan nilainya dari dua lokasi di atas tadi. Katakanlah kita ingin menggunakan time_zone Asia/Jakarta untuk bahasa Indonesia.
Langkah Pertama, klik menu Tools -> Locale Settings dari dalam project PHPMaker 2021, lalu pilih id.json, kemudian masukkan Asia/Jakarta pada pengaturan time_zone.
Langkah Kedua, klik menu Tools -> Advanced Settings -> Database time zone (for SET TIME ZONE), lalu masukkan: +07:00.
Setelah itu, simpan project, lalu generate ulang semua file script menggunakan PHPMaker 2021 seperti biasa.
denny mengatakan
terima kasih bang. saya sudah coba cara abang. sistem jamnya masih kacau.
Masino Sinaga mengatakan
Kacaunya seperti apakah?
nur syamsu mengatakan
Pak Masino mohon advicenya, salah satu field “create_On” saya isi otomatis ketika transaksi menggunakan Auto-Update Value = CurrentDateTime.
Untuk tanggalnya sudah benar namun untuk jam masih ada selisih 7 jam.
Seharusnya 2021-02-27 17:36:20 , tetapi tersimpan didatabase 2021-02-27 10:36:20
Saya sudah mencoba melakukan hal ini dibawah ini,, generate ulang phpmaker ataupun restart xampp tapi masih belum ada perubahan.
# di PHPMaker
1. Tools -> Locale Settings, pada id.json untuk Time zone = Asia/Jakarta
2. Advanced Setting –> Database time zone = +07:00
# di xampp/php pada file php.ini , sudah diupdate date.timezone=Asia/Jakarta.
Terima kasih atas bantuannya
Masino Sinaga mengatakan
Kalau setting Database time zone-nya dikosongkan, bagaimana hasilnya?
nur syamsu mengatakan
Maaf Pak saya terlewatkan dari edit file di locale/en.json pada paramater timezone = “asia/jakarta”.
Ini sudah berhasil, terima kasih
Masino Sinaga mengatakan
Siip, sama-sama.
mhfuj mengatakan
Hallo pak masino,trimakasih sudah memberi informasi yang bermanfaat
hanya saja timezone saya masih tidak bisa berubah +07:00
saya sudah melakukan setting persis seperti yang di artikel yaitu:
Langkah Pertama, klik menu Tools -> Locale Settings dari dalam project PHPMaker 2021, lalu pilih id.json, kemudian masukkan Asia/Jakarta pada pengaturan time_zone.
Langkah Kedua, klik menu Tools -> Advanced Settings -> Database time zone (for SET TIME ZONE), lalu masukkan: +07:00.
tapi kenapa timezone saya masih memiliki timezone london?
Masino Sinaga mengatakan
Halo juga. Sama-sama.
Aplikasi web-nya yakin hanya pakai bahasa Indonesia? Jangan-jangan saat itu bahasa yang terpilih adalah English?