1/18/2011

Year 2038 problem

Энэ асуудалын талаар мэддэггүй хүмүүс байгаа байх гэж бодоод жаахан зүйл бичье гэж бодлоо.
PHP дээр огноо дүрслэхдээ UNIX timestamp ашигладаг функц ашиглавал дүрслэж болох огноо-н MAXIMUM утга нь 32бит-н компьютер дээр 2-н 31 зэрэг байдаг. Үүнийг UNIX timestamp ашиглан огноод шилжүүлвэл

2038-01-19 12:14:07 болно

дээрх хязгаараас давсан буюу их утгыг хөрвүүлэхдээ дараах огноог дүрслэдэг

1901-12-14 05:45:52

Та бүхэн дараах кодыг ажиллуулж туршиж үзээрэй

$maximum_value = pow(2, 31) - 1;
echo date('Y-m-d H:i:s', $maximum_value) . "\n";

$maximum_overflow = $maximum_value + 1;
echo date('Y-m-d H:i:s', $maximum_overflow) . "\n";
?>


Урт хугацаагаар ашиглах систем хөгжүүлэхдээ UNIX timestamp ашиглан огноо дүрсэлдэг функц анхнаасаа ашиглахгүй байсан дээр болов уу гэж бодож байна. Жишээлбэл : PEAR-н Calc класс-г ашиглаж болно.

0 санал,шүүмж:

 

Надад итгэл бий Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template