我有一个表格,允许用户输入两个日期,但我的输出日期不正确,因为它出现在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;
答案 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
格式,4
或y/m/d
个数字开始解析1
格式。使用2
作为分隔符没有m/d/y
。
您可以使用DateTime::createFromFormat()
(并且可以为解析器提供所需的格式)或强制执行通用格式(例如d/m/y
),该格式不含糊且可以由{{解析1}}和其他功能,无需进一步说明。