为什么我没有得到我选择的日期?

时间:2015-03-16 18:36:32

标签: php

我有一个表格,允许用户输入两个日期,但我的输出日期不正确,因为它出现在1970-01-01。 有什么帮助吗?

这是我的date1的HTML:

 <td><label for="date_1">Date as dd/mm/yyyy (date_1)</label></td>
        <td>
          <input name="date_1" type="text" class="larger" id="date_1" value="" size="12" />

这是我的php:

$first = $_REQUEST["date_1"];
$second = $_REQUEST["date_2"];

$f_date = date('Y-m-d', strtotime($first));
$s_date = date('Y-m-d', strtotime($second));

if(isset($_GET["submit"])){

echo $f_date;
echo '<br />';
echo $s_date;

2 个答案:

答案 0 :(得分:1)

使用

echo DateTime::createFromFormat('d/m/Y', $date)->format('Y-m-d');

答案 1 :(得分:0)

the documentation中所述,当函数strtotime(),类DateTime的构造函数及其程序等效函数(函数date_create())找到斜杠({{1在提供给他们解析的日期,他们将其解释为美国日期样式(/ / month / day)或year / {的分隔符{1}} / year格式。他们尝试解析哪一个取决于第一个组件中找到的位数:month个数字触发解析day格式,4y/m/d个数字开始解析1格式。使用2作为分隔符没有m/d/y

您可以使用DateTime::createFromFormat()(并且可以为解析器提供所需的格式)或强制执行通用格式(例如d/m/y),该格式不含糊且可以由{{解析1}}和其他功能,无需进一步说明。

相关问题