好的,这是我遇到的问题。
我将日期时间作为数据库中的一行,如何配置 php,以便它从 php 脚本将正确的日期时间插入数据库中,我目前似乎只能使用 vanchar(255)。
MySQL 的日期/时间格式是yyyy-mm-dd mm:hh:ss
. 如果您以任何其他格式插入时间和/或日期值,它们很可能会被丢弃并设置为默认值。如果需要,您可以使用str_to_date()等函数将不符合要求的字符串转换为原生 MySQL 值。
尝试这个...
<?php
function format_mysql_datetime($raw) {
$format = '%Y-%m-%d %H:%M:%S';
$stringtime = strtotime($raw);
return strftime($format, $stringtime);
}
$raw = date('c');
$sql='insert into myTable (theDateTimeField)
values ('.format_mysql_datetime($raw).')';
mysql_query($sql);
?>
如果您使用 date('c') 而不是 time(),则此方法有效。确保您设置了默认时区,否则它可能会显示错误的时间。请参阅date_default_timezone_set。
请注意,您不应该使用 mysql_*。相反,请使用 PDO。您的代码容易受到 sql 注入的影响,您必须在任何时候在查询中使用外部输入时加以防范。我没有使用 PDO 写我的答案,因为我想强调如何处理日期,而不是让您与引入另一个新概念混淆。
另请查看这些文档: