好的,这是我遇到的问题。
我将datetime作为数据库中的一行,如何配置php,以便从php脚本中将正确的日期时间插入到数据库中,我现在似乎只能使用vanchar(255)。
答案 0 :(得分:1)
MySQL的日期/时间格式为yyyy-mm-dd mm:hh:ss
。如果以任何其他格式插入时间和/或日期值,它们可能会被删除并设置为默认值。如果需要,您可以使用str_to_date()之类的函数将不符合的字符串转换为本机MySQL值。
答案 1 :(得分: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);
?>
如果您使用日期('c')而不是time(),则此方法有效。确保设置了默认时区,否则可能显示错误的时间。见date_default_timezone_set.
请注意,您不应该使用mysql_ *。相反,使用PDO。您的代码很容易受到SQL注入攻击,您必须在查询中使用外部输入时防范它。我没有用PDO写我的答案,因为我想强调如何处理日期而不是让你混淆引入另一个新概念。
另请查看以下文档: