我有一个带有日期和时间JS数据报警器的PHP,它将所有字符串保存在一个名为$date的变量中,格式为"19.08.2012 @ 20:18“。
如果我将这个变量直接放在查询中,它会在数据库中写入"0000-00- 00 :00:00“。现在我脑子里有个大黑洞,所以需要帮助。
如何在数据库中写入正确的选定日期和时间?
对不起,我觉得没那么重要,这是密码。
index.php
<script type="text/javascript">
$(function() {
$("#date").datetimepicker({
dateFormat:'dd.mm.yy',
separator: ' @ '
});
});
</script>
<form action="setting.php" method="post">
<table>
<tr>
<td><label for="date">Date:</label></td>
<td><input type="text" id="date" name="date"/></td>
</tr>
</table>
<input type="submit" name="submit" />setting.php
if(isset($_POST['save_autoresp'])) {
create($_POST['date']);
header("Location: admin.php");
exit();
} else {
header("Location: index.php");
exit();
}functions.php
.......
.......
// Write the fields to the table
$query_create = mysqli_query($link, "INSERT INTO table VALUES (null, '$id', '$date')") or die ('Could not connect: ' . mysqli_error($link));
.......
.......MySQL数据库中的日期字段是"datetime“。
发布于 2012-08-19 18:24:50
您收到的日期是MySQL不识别的格式。首先必须将其转换为接受日期和时间文字,然后才能将其传递给插入。
这种转换可以通过两种方式进行:
无论你选择哪种方式,在保存到数据库时,都要坚持日期的年月日格式,这样你就不会疯狂地找出为什么"08/02“被认为是8月2日而不是2月8日。
发布于 2012-08-19 18:25:02
您需要转换您的变量来指定MySQL的正确格式,即:NN:SS。就这样。通过向其抛出sone子字符串函数来完成。
发布于 2012-08-19 18:29:15
如果直接在查询中写入字符串"19.08.2012 @ 20:18“,MySQL就无法解析它。您必须首先转换它,这取决于字段(列),它要么是INT、时间戳,要么是DATETIME。
MySQL附带了一些方便的日期计算函数,所以您应该坚持使用日期时间。
在PHP中,您可以使用gmmktime()和gmdate()来转换它。为了简化您自己的生活,请确保MySQL服务器在UTC上运行,并且您的应用程序在将其插入MySQL之前将日期转换为UTC。
在获取输出日期时,只需使用适当的date_default_timezone_set()即可。
https://stackoverflow.com/questions/12028862
复制相似问题