首頁 >資料庫 >mysql教程 >將日期從 PHP 插入 MySQL 時如何解決日期格式衝突?

將日期從 PHP 插入 MySQL 時如何解決日期格式衝突?

DDD
DDD原創
2024-12-06 18:14:11280瀏覽

How to Resolve Date Format Conflicts When Inserting Dates from PHP into MySQL?

PHP MySQL 插入中的日期格式差異

在嘗試使用PHP 將日期插入MySQL 資料庫時,使用者可能會遇到以下錯誤:格式不符。流行的 jQuery 日期選擇器格式「08/25/2012」與 MySQL 支援的日期格式衝突。

要解決此問題,必須了解MySQL 的日期文字要求:

  1. 字串格式: YYYY-MM-DD 或YY-MM-DD,帶有可選分隔符。例:'2012-12-31'、'2012/12/31'、'2012^12^31'。
  2. 無分隔字串格式: YYYYMMDD 或 YYMMDD。例:「20070523」、「070523」(解釋為「2007-05-23」)。
  3. 數位格式: YYYYMMDD 或 YYMMDD。例:19830905、830905(解釋為“1983-09-05”)。

由於「08/25/2012」格式不符合這些規則,因此必須轉換。有多種選項可供選擇:

1。轉換jQuery Datepicker 格式

配置日期選擇器以提供受支持格式的日期:

$( "selector" ).datepicker({
    altField : "#actualDate"
    altFormat: "yyyy-mm-dd"
});

或設置dateFormat 選項:

$( "selector" ).datepicker({
    dateFormat: "yyyy-mm-dd"
});

2.使用MySQL 的STR_TO_DATE()函數

插入時轉換字串:

INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))

3.使用PHP 的DateTime 物件轉換

取得適當的格式化字串或UNIX 時間戳記:

$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
$date = $dt->format('Y-m-d');
$timestamp = $dt->getTimestamp();

對於UNIX時間戳插入:

INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp))

4 。手動字串操作

提取日期部分並以有效格式連接它們:

$parts = explode('/', $_POST['date']);
$date  = "$parts[2]-$parts[0]-$parts[1]";

注意:

  • 使用準備好的語句來防止SQL 注入。
  • 考慮使用 DATE對於僅日期值,請鍵入而不是 DATETIME 或 TIMESTAMP。

以上是將日期從 PHP 插入 MySQL 時如何解決日期格式衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn