On Fri, Oct 01, 2004 at 09:55:26AM +0200, fade2blac wrote: > Halo semua, > > Begini, > Saya menyimpan format tanggal dengan tipe bigint dan data > disimpan dalam format timestamp. Untuk itu saya buat fungsi kurang lebih > begini (dalam PHP): > > function convert_date($var) { > if(!$var) { return false; > } elseif(ereg("-",$var)) { > list($day,$month,$year)=explode("-",$var); > return mktime(0,0,0,$month,$day,$year); > } elseif(ereg("/",$var)) { > list($day,$month,$year)=explode("/",$var); > return mktime(0,0,0,$month,$day,$year); > ## passing unix epoch time, returning date > } else { > return date("d-m-Y",(int)$var); > } > } > > Masalahnya, ternyata timestamp itu di tiap komputer ternyata > hasilnya beda untuk tanggal yang sama. Saya coba otak-atik hingga > saya samain biosnya antara mesin 1 dan mesin 2 tapi tetap ada perbedaan > detik. Bahkan sudah edit /etc/adjtime untuk disamain, tetap saja beda. > > Masalah yang timbul adalah saat query seperti ini: > > select a from b where tanggal>=123 and tanggal<=456 > > Hasil dibeda mesin, jadi beda range tanggal. Kadang lebih sehari, kadang > kurang sehari. Saya coba fungsinya diganti menjadi gmdate() tapi > ternyata > - timestamp->tanggal sama > - tanggal->timestamp beda > > contoh: > convert_date('09-01-2004'); > mesin 1: hasilnya 1073624400 > mesin 2: hasilnya 1073602800 > > Ada yang pernah ngalamin sama dan gimana ngatasinnya?
sudah coba panggil langsung mktime()-nya: print(mktime(0, 0, 0, 1, 9, 2004)); saya coba di tiga komputer hasilnya sama. Wardi -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis.php