MySQL 內建函數
| 轉換方向 | 函數 | 範例 | 結果 |
| 時間戳 → 日期 | FROM_UNIXTIME(unix_timestamp) | SELECT FROM_UNIXTIME(1156219870); | 2006-10-21 12:31:10 |
| 日期 → 時間戳 | UNIX_TIMESTAMP(date) | SELECT UNIX_TIMESTAMP('2006-11-04 12:23:00'); | 1162623780 |
實戰範例:查詢當天記錄數
SELECT * FROM message
WHERE DATE_FORMAT(FROM_UNIXTIME(chattime), '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
ORDER BY id DESC;
PHP 對應函數
| 轉換方向 | 函數 | 範例 |
| 時間戳 → 日期 | date(format, timestamp) | date('Y-m-d H:i:s', 1156219870); |
| 日期 → 時間戳 | strtotime(date_string) | strtotime('2010-03-24 08:15:42'); |
選型建議
- 資料庫層轉換: 適合 SQL 過濾、排序、分組,減少網路傳輸資料量。
- 應用層轉換: 適合顯示格式化、時區處理、複雜業務邏輯,靈活度高。
- 最佳實踐: 資料庫儲存
TIMESTAMP 或 DATETIME 型別,應用層統一用 DateTime 物件操作,避免手動轉換錯誤。