我最近有一个简单的日历拾取器的PHP编码。但它的日期格式为mm / dd / yy。无论如何,我可以自动将其转换为yy-mm-dd吗?我听说使用strtotime可以在进入数据库时自动更改它,但我不知道如何以及在何处添加代码。我尝试在主页面中添加类似.. strftime("%Y-%m-%d", strtotime($Date))
,但我不知道在哪里添加此内容但所有地方都无效。有什么帮助吗?非常感谢帮助。
这大致与我主页中的情况相似:
if(isset($_POST["insert_click"]))
{
$Date=$_POST["Date"];
strftime("%Y-%m-%d", strtotime($Date)); //I tried putting it here but it does not work
$Time=$_POST["Time"];
$query=$connect->prepare("insert into Booking(Date, Time) values (?,?)");
$query->bind_param('ss', $Date, $Time);
$query->execute();
}
这大致与我的表单页面相似:
<tr>
<td>Date:</td>
<td>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Datepicker - Format date</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function()
{
$( "#datepicker" ).datepicker({minDate:0});
$( "#format" ).change(function()
{
$( "#datepicker" ).datepicker();
});
});
</script>
</head>
<body>
<input type="text" id="datepicker" size="30" name="Date"/>
</body>
</html>
</td>
</tr>
答案 0 :(得分:0)
问题是您需要将日期转换的结果保存到变量中。这句话:
strftime("%Y-%m-%d", strtotime($Date));
将执行日期转换并返回转换后的日期,但会单独留下$Date
。
要解决此问题,您需要通过将结果存储到变量来捕获结果:
$Date = strftime("%y-%m-%d", strtotime($Date));
此外,由于您需要yy-mm-dd,请使用%y
代替%Y
。
答案 1 :(得分:0)
您的第strftime("%Y-%m-%d", strtotime($Date));
行是正确的。您只是忘了将此函数的返回值赋给变量。你会想要这样的东西:
$newDate = strftime("%Y-%m-%d", strtotime($Date));
如果您不再需要原始日期,您也可以这样做:
$Date = strftime("%Y-%m-%d", strtotime($Date));
注意:现在,对于在数据库或HTML的<time datetime="bla"></time>
标记中使用的PHP时间格式,您可能会非常懒惰。 “正常”和本地化时间格式都为您提供了生成常用时间值组合的快捷方式,例如:
c
date() %F
strftime() 答案 2 :(得分:0)
一个选项是使用这样的原生日期函数:
$Date=DATE('y-m-d, strtotime($_POST["Date"]));