-1

好的,这是我遇到的问题。

我将日期时间作为数据库中的一行,如何配置 php,以便它从 php 脚本将正确的日期时间插入数据库中,我目前似乎只能使用 vanchar(255)。

4

2 回答 2

1

MySQL 的日期/时间格式是yyyy-mm-dd mm:hh:ss. 如果您以任何其他格式插入时间和/或日期值,它们很可能会被丢弃并设置为默认值。如果需要,您可以使用str_to_date()等函数将不符合要求的字符串转换为原生 MySQL 值。

于 2012-10-20T15:50:40.850 回答
0

尝试这个...

<?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 写我的答案,因为我想强调如何处理日期,而不是让您与引入另一个新概念混淆。

另请查看这些文档:

于 2012-10-20T16:09:08.440 回答