将 PHP 日期转换为 MySQL 格式
在 PHP 中,经常会遇到代码中使用的格式的日期字段:
$date = mysql_real_escape_string($_POST['intake_date']);
但是,在使用MySQL时,经常需要将这个日期转换为MySQL格式“0000-00-00”用于数据库包含。虽然可能会想到 date('Y-m-d' strtotime($date);) 的一些变体,但解决此转换中涉及的特定复杂问题至关重要。
1.处理MySQL列类型
如果你的MySQL列是DATE类型,只表示日期而不表示时间,推荐的转换方法是:
$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
这里替换破折号“在应用 strtotime() 函数之前,在日期字符串中使用正斜杠“/”。否则,strtotime() 将尝试减去由破折号分隔的数字,从而导致错误的结果。
2. DATETIME 类型的转换
如果您的 MySQL 列是 DATETIME 类型,其中包含日期和时间部分,请改用以下转换:
$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
这里,我们坚持遵循用“/”替换“-”的相同原则,但我们还包括时间组件的附加格式。
3.复杂格式的替代方法
如果您的日期格式与 strtotime() 和 date() 函数都不兼容,例如“02/07/2009 00:07:00” ,您可以选择基于正则表达式的转换:
$date = '02/07/2009 00:07:00'; $date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '-- ', $date);
此正则表达式将日期组件重新排列到所需的 MySQL 中格式,确保您的 PHP 日期字段经过适当转换以包含在数据库中。
以上是如何将 PHP 日期转换为 MySQL DATE 和 DATETIME 格式?的详细内容。更多信息请关注PHP中文网其他相关文章!