如何自动转换为php日期格式?

时间:2013-07-24 14:33:10

标签: php strtotime

我最近有一个简单的日历拾取器的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>

3 个答案:

答案 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时间格式,您可能会非常懒惰。 “正常”和本地化时间格式都为您提供了生成常用时间值组合的快捷方式,例如:

  1. c date()
  2. %F strftime()

答案 2 :(得分:0)

一个选项是使用这样的原生日期函数:

$Date=DATE('y-m-d, strtotime($_POST["Date"]));