我有以下代码片段:
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
查询时,数据库中的字段将存储0000-00-00 00:00:00
。
将存储$date_of_msg
的字段称为post_details
,类型为datetime
。我知道有一个名为date_to_str
的函数,似乎有与之相关的问题,例如this。但是那个问题的答案是转换手动输入的日期,而我想得到用户发帖的时间。我认为解决方案是在插入date_to_str
变量时使用$date_of_msg
函数?但是我无法理解它是如何工作的?
答案 0 :(得分:1)
你的
scala> case class Page(url: String) {
| var content: String = new URL(url).getContent().toString;
| }
defined class Page
scala> Page("http://www.google.de")
res5: Page = Page(http://www.google.de)
发送的结果如下:
2016年3月2日星期三10:00
因此您将该值date('l jS F Y h:i');
视为日期时间不匹配
将其更改为:
0000-00-00 00:00:00
或使用此文档将日期格式化为您需要的内容。 http://php.net/manual/en/function.date.php
答案 1 :(得分:0)
这可能是因为您的Web服务器(apache im guess)配置与您的mysql配置不同。
这就是为什么你会遇到一些困惑。
有几种方法可以解决这个问题,但它需要您选择一种格式并随之运行。
将记录插入mysql时,请告诉它要使用的格式。
$ query_manual =" INSERT INTO dateplayground(dp_name,dp_datetime) 价值观(' DATETIME:手动日期时间',' 1776-7-4 04:13:54')";
研究mysql和apache日期时间配置并修复它们,使它们具有完全相同的日期时间格式。
答案 2 :(得分:0)
在mysql datetime字段中,您只能插入格式为Y:m:d H:i:s
请使用格式相同的日期时间
$date_of_msg = date('Y:m:d H:i:s');