php将日期格式转换为mysql格式以进行插入[重复]

Posted

技术标签:

【中文标题】php将日期格式转换为mysql格式以进行插入[重复]【英文标题】:php format date into mysql format for insert [duplicate] 【发布时间】:2021-06-01 21:00:05 【问题描述】:

我有一个 php 变量,它代表日期(来自日期选择器),格式为“DD.MM.YYYY”,例如今天“03.03.2021”。 我看到mysql日期支持的格式是“YYYY-MM-DD”。如果我只是尝试在 mysql 中插入我的变量,我会得到“0000-00-00”。 如何将我的变量转换为 mysql 格式以便能够将其插入表中? 谢谢

【问题讨论】:

参见 PHP DateTime reference中的 DateTime::createFromFormat() 和 DateTime::format() 你应该阅读更多 PHP 文档 【参考方案1】:

你可以试试这个

$str = "03.03.2021";
$date = DateTime::createFromFormat("d.m.Y", $str);
echo date_format($date,"Y-m-d");

【讨论】:

非常感谢【参考方案2】:

你总是可以像这样转换日期:

date('Y-m-d', strtotime('03.03.2021'))

print_r 结果

print_r(date('Y-m-d', strtotime('03.03.2021')));

2021-03-03

print_r(date('d/m/Y', strtotime('03.03.2021')));

2021 年 3 月 3 日

等等...您可以使用以下日期格式:

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

来自php.net

顺便说一句,我强烈建议您将日期存储为时间戳

【讨论】:

以上是关于php将日期格式转换为mysql格式以进行插入[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 将 mm/dd/yyyy 格式转换为纪元

将格式 MM/DD/YYYY 的日期转换为 MySQL 日期 [重复]

PHP PHP将用户输入日期转换为MySQL格式化日期

PHP 将Twitter API日期时间转换为MySQL日期时间格式

如何将日期字符串转换为 mysql 日期格式以使用 mysql 查询计算日期差异

将日期字符串转换为 mysql 日期时间字段