Pepijat Tahun 2038: Apakah itu dan Cara Menyelesaikannya
Apakah Masalah Tahun 2038?
Masalah Tahun 2038 menjejaskan perisian dan sistem yang menyimpan tarikh sebagai ditandatangani 32-bit integer, mewakili bilangan saat sejak 00:00:00 UTC pada 1 Januari 1970. Apabila pembilang melepasi nilai maksimumnya (2,147,483,647) pada 19 Januari 2038 pada 03:14:07 UTC, ia akan "bergulung" ke nombor negatif, mengakibatkan salah ketepatan masa.
Mengapa dan Bilakah Ia Berlaku?
Isu ini timbul disebabkan oleh kapasiti terhad integer 32-bit untuk mewakili pelbagai tarikh. Apabila kaunter mencapai nilai maksimumnya, ia mentafsirkan lebihan masa sebagai tarikh pada 13 Disember 1901.
Cara Menyelesaikan Masalah Tahun 2038
Gunakan Jenis Data Panjang:
Naik taraf perisian anda untuk menggunakan jenis data integer 64-bit untuk penyimpanan tarikh, menyediakan julat masa yang diperluas dengan ketara.
Penyelesaian Khusus MySQL:
Alternatif kepada TIMESTAMP
Dalam pangkalan data, pertimbangkan untuk menggunakan jenis data 64-bit (cth., long long dalam GNU C) atau sambungan BCmath dalam PHP untuk menyimpan tarikh.
Mengurangkan Risiko dalam Aplikasi Sedia Ada
Untuk mengelakkan isu dalam aplikasi sedia ada menggunakan TIMESTAMP:
Kes Penggunaan Berpotensi Pecah
Malah sebelum 2038, sistem yang menyimpan tarikh akan datang (cth., tarikh lahir , gadai janji jangka panjang) mungkin menghadapi ralat, kerana TIMESTAMP hanya meliputi julat 1970-2038.
Sumber untuk Maklumat Lanjut:
Atas ialah kandungan terperinci Masalah Tahun 2038: Bagaimana Kita Boleh Mencegah Penyelesaian Masa Teknologi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!