我有以下代码片段:
date_default_timezone_set('UTC');
if (!isset($_POST['secret']) && $post_msg != "" ) { // checkbox unchecked processing...
// Checkbox is selected
$date_of_msg= date('l jS F Y h:i');
$msg_sent_by = $username;
$insert_query = "INSERT INTO user_thoughts VALUES ('','$post_msg','$date_of_msg','','' ,'$attach_name','$msg_sent_by','yes')";
$run_query = mysqli_query($connect, $insert_query) or die(mysqli_error());
}当我回显$date_of_msg时,日期和时间将按预期打印出来,但当运行上面的INSERT查询时,db中的字段将存储0000-00-00 00:00:00。
存储$date_of_msg的字段称为post_details,类型为datetime。我知道有一个名为date_to_str的函数,似乎有一些与它相关的问题,比如this one。但是这个问题的答案是手动转换输入的日期,而我想得到用户发布文章的时间。我认为解决方案是在插入date_to_str变量时使用$date_of_msg函数?但我不明白它是怎么工作的?
发布于 2016-03-02 16:06:10
你的
date('l jS F Y h:i');发送的结果如下:
2016年3月2日星期三上午10:00
因此,您得到的值0000-00-00 00:00:00是日期时间不匹配的值。
改为:
date('Y-m-d h:i:s');或者使用此文档将日期格式化为需要的内容。http://php.net/manual/en/function.date.php
发布于 2016-03-02 16:08:40
这可能是因为您的web服务器(apache猜测)配置与mysql配置不同。
所以这就是为什么你会感到困惑。
有几种方法可以解决这个问题,但是它需要您选择一种格式并使用它运行。
发布于 2016-03-02 16:18:01
在mysql datetime字段中,只能插入格式Y:m:d H:i:s的日期时间。
请使用相同格式的日期时间。
$date_of_msg = date('Y:m:d H:i:s');https://stackoverflow.com/questions/35752110
复制相似问题