色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

MySQL時間戳變成1969年的了

洪振霞2年前12瀏覽0評論

最近我們在使用MySQL時遇到了一個問題,時間戳字段突然變成了1969年1月1日,而且所有的時間戳都發生了這個問題。我們分析了一下,發現是我們的程序在存儲時間戳時出現了問題,導致MySQL無法正確識別時間戳的格式。

// PHP代碼
$timestamp = strtotime('2022-07-01 11:00:00');
$sql = "INSERT INTO `table_name` (`timestamp_column`) VALUES ('$timestamp')";
 mysqli_query($conn, $sql);

我們注意到在程序中使用了strtotime函數,該函數會將字符串轉化為時間戳,但是在轉化過程中如果出現問題,會返回false,此時就會等同于0,而1970年1月1日之前的時間戳都是負數。因此,當程序返回的時間戳為0時,實際上存儲到MySQL中的就是負數的時間戳。

為了避免這個問題,我們需要在程序中增加一個判斷,如果返回false,則說明字符串不符合時間格式,應該拋出異常并提示用戶重新輸入。

// PHP代碼
$timestamp = strtotime('2022-07-01 11:00:00');
if($timestamp === false){
throw new Exception("時間格式錯誤,請重新輸入");
}
$sql = "INSERT INTO `table_name` (`timestamp_column`) VALUES ('$timestamp')";
 mysqli_query($conn, $sql);

這樣我們就能夠避免MySQL時間戳變成1969年的問題了。