Skip to main content

Keanehan Penggunaan Function date() di PHP dan Solusinya



June 15th, 2010 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway
Waduh… lama ya gak posting di blog ini, kayaknya dah hampir 3 minggu saya gak nulis artikel yang baru. Sebenarnya banyak ide untuk materi tulisan, namun apa dikata… waktu buat nulis gak ada karena kesibukan di kantor :-) OK deh, kali ini saya coba share lagi lewat tulisan seputar PHP. Topik yang saya bahas di sini tentang keanehan penggunaan funtion date()dan cara mengatasinya.
Tentu Anda yang sudah familiar dengan PHP, pernah menggunakan function date() itu bukan? Ya… function tersebut digunakan untuk pembacaan tanggal atau segala perhitungan yang terkait dengan tanggal dan waktu. Anda bisa search artikel yang terkait dengan penggunaan date() ini di blog saya.
Nah.. suatu ketika, saya iseng-iseng membuat script sederhana untuk menampilkan tanggal, bulan dan tahun saat ini, plus… ada jam, menit dan detiknya. Adapun script nya sbb:
1.<?php
2.echo date("d-m-Y H:i:s");
3.?>
Keterangan:
d : tanggal
m : bulan
Y : tahun (4 digit)
H : jam
i : menit
s : detik
Harapan saya ketika script tersebut ditampilkan di browser akan muncul tanggal, bulan, tahun, jam, menit dan detik yang benar sesuai waktu di sistem saat itu. Dan ternyata apa yang terjadi…. perhatikan screen shot di bawah ini.
function date php
Dalam screen shot tersebut saya ingin bandingkan antara waktu yang tampil di browser dari script dengan waktu yang ada di sistem. Untuk tanggal, bulan dan tahun kebetulan sama. Namun untuk jam nya ternyata berbeda. Nah.. lho ?? wah ternyata function date() di PHP tidak sesuai dengan waktu yang ada di sistem. Dalam kasus saya ini, selisih waktu antara di sistem dengan apa yang tampil di browser tersebut adalah 1 jam. Untuk menit sama, dan untuk detiknya berbeda sekitar 2 detik. Perbedaan detik ini terjadi karena waktu yang saya butuhkan untuk mengambil gambar nya (nge-screen shot) adalah sekitar 2 detik, jadi ada jeda waktu antara waktu di sistem dengan yang tampil di browser.
Apakah Anda juga mengalami hal yang sama?? Saya tidak tahu persis mengapa hal itu bisa terjadi. Mungkin PHP menggunakan settingan Time Zone yang berbeda dengan yang ada di PC, CMIIW. Trus… solusinya bagaimana dong? OK… solusinya adalah dengan menambahkan Time Zone sendiri sesuai di daerah Anda. Kebetulan di Indonesia sudah ada Time Zone nya sendiri yaitu menggunakan “Asia/Jakarta”.
OK… sekarang bagaimana cara mengatur Time Zone nya? caranya adalah dengan menambahkan perintah
1.date_default_timezone_set("Asia/Jakarta");
pada script di atas, sehingga scriptnya menjadi
1.<?php
2.date_default_timezone_set("Asia/Jakarta");
3.echo date("d-m-Y H:i:s");
4.?>
Setelah ditambahkan perintah pengaturan Time Zone untuk Jakarta tersebut, alhamdulillah waktunya bisa tepat.
Oya, perlu diketahui bahwa dengan mengeset Time Zone “Asia/Jakarta” itu berarti sama saja kita menggunakan Waktu Indonesia Barat. Lantas bagaimana ada di antara Anda yang berada di WITA atau WIT? Jangan khawatir, kita bisa mengaturnya kok. Misalkan lokasi Anda berada di wilayah WITA. Kita tahu bahwa waktu WITA adalah 1 jam lebih dahulu dibandingkan WIB. Oleh karena itu untuk menampilkan waktu di WITA saat itu, kita gunakan mktime() yang dimodifikasi sbb:
1.date("Y-m-d H:i:s"mktime(date("H")+1, date("i"), date("s"), date("m"), date("d"), date("Y")));
Sehingga scriptnya menjadi
1.<?php
2.date_default_timezone_set("Asia/Jakarta");
3.date("Y-m-d H:i:s"mktime(date("H")+1, date("i"), date("s"), date("m"), date("d"), date("Y")));
4.?>
Sedangkan untuk daerah waktu di WIT, berarti kan 2 jam lebih dahulu daripada WIB, maka kita tambahkan 2 pada date("H") nya menjadi
1.date("Y-m-d H:i:s"mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")));
dan scriptnya menjadi sbb:
1.<?php
2.date_default_timezone_set("Asia/Jakarta");
3.date("Y-m-d H:i:s"mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")));
4.?>
OK mudah bukan solusinya??? Teknik di atas bisa bermanfaat jika Anda menggunakan pedoman waktu untuk suatu melakukan suatu proses dalam program yang Anda buat. Misalnya untuk mengirim SMS terjadwal secara otomatis pada tanggal, bulan, tahun, jam, menit dan detik yang sudah ditentukan, seperti halnya script phpSMS V2.1 yang telah saya buat.


Sumber: http://blog.rosihanari.net/keanehan-penggunaan-function-date-di-php-dan-solusinya/#ixzz2WenhMJ2V

Comments

Popular posts from this blog

Senjata-Senjata Teknologi Tinggi Masa Depan yang Sedang Terus Dikembangkan

Author: radhite   Category: teknologi Semua mengembangkan ilmu dan teknologi yang menghasilkan daya penghancuran yang semakin luar biasa menakutkan. Berikut 10 senjata penghancur paling canggih di dunia yang sangat luar biasa itu. Perlombaan setiap negara besar untuk mengembangkan senjata canggih dengan daya hancur yang mengerikan masih terus berlangsung hingga saat ini. Semua mengembangkan ilmu dan teknologi yang menghasilkan daya penghancuran yang semakin luar biasa menakutkan. Berikut 10 senjata penghancur paling canggih di dunia yang sangat luar biasa itu. 1. Aurora Excalibur    Senjata ini merupakan pesawat tak berawak yang beroperasi dengan lepas landas dan mendarat secara vertikal. Pesawat ini dapat mencapai kecepatan 460 mph (740 kmh) dan dapat membawa misil untuk ditembakkan. Pesawat ini bisa melakukan semua hal itu melalui remote control. Excalibur berhasil diuji pada Juni 2009.

Mengenal Cara Kerja Teknologi Canggih Pesawat Siluman

Mengenal Cara Kerja Teknologi Canggih Pesawat Siluman Author: radhite   Category: teknologi Kemajuan zaman membuat teknologi dirgantara semakin pesat perkembangannya, pada saat ini ada tiga kubu kuat di dunia dengan teknologi pesawatnya yang sangat maju. Kemajuan zaman membuat teknologi dirgantara semakin pesat perkembangannya, pada saat ini ada tiga kubu kuat di dunia dengan teknologi pesawatnya yang sangat maju. Yang pertama tentunya Amerika serikat, kedua adalah Eropa dan yang terakhir adalah Russia. Ketiganya berlomba membuat pesawat tempur dengan teknologi yang lebih maju dari yang lainnya. Untuk urusan stealth yang memimpin tetap Amerika serikat, sedangkan Russia tak bisa diangap enteng dengan kelebihan-kelebihan manuvernya. Meskipun Amerika juga telah mengembangkan teknologi manuver yang tak kalah gesitnya dengan Russia seperti penerapan Thrust Vectoring, yang mana “knalpot” pesawat bisa berbelok-belok ke segala arah.tapi diantara semua teknologi te...