请有人可以帮助我如何从DP获取日期 在这段代码中,它显示了一个例外和日期01/01/1970
<!DOCTYPE>
<?php
session_start();
?>
<html >
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" >
<title>Untitled 1</title>
</head>
<form method="post" >
<input id="calendar" name="calendar" type="date">
</form>
<?php
$new_date = date('Y-m-d', strtotime($_REQUEST['calendar']));
echo $new_date;
var_dump($_REQUEST['calendar']);
?>
</html>
答案 0 :(得分:2)
您需要提交表单以在$ _POST中包含值(因为您的表单使用POST方法)。没有它,你的$ _POST ['calendar']没有被初始化。
为了确保您的日期在未提交的情况下不显示,您必须检查您的值是否已设置$ _POST ['calendar'](或者如果初始化了_ $ _ POST变量,则检查您的代码是否正确)。 / p>
<form method="post" >
<input id="calendar" name="calendar" type="date">
<input type="submit" value="Submit">
</form>
<?php
// you could use if (!empty($_POST)) too, but be carefull, it check if ANY post data exist
if( isset($_POST['calendar']) ){ // check if the value has been sent
$new_date = date('Y-m-d', strtotime($_POST['calendar']));
echo $new_date;
}
?>
要做更多,你可以添加一个日期检查,以确保输入是正确的,如下所示:
if( isset($_POST['calendar']) ){
$new_date = strtotime($_POST['calendar']);
if ($new_date){
$new_date = date('Y-m-d',$new_date);
echo $new_date;
}else{
echo 'Invalid Date: ' . $_POST['dateFrom'];
}
}
答案 1 :(得分:1)
我会使用PHP的DateTime类来转换它。
$date = '12/31/2017';
$DateTime = new DateTime($date);
echo $DateTime->format('Y-m-d');
输出:
'2017-12-31`
DateTime提供更多功能,看起来比date
和strtotime
“传统”方式更清晰。
答案 2 :(得分:0)
这是我做的(Ubuntu):
$ cd /tmp
$ cat index.php
<form method="post" >
<input id="calendar" name="calendar" type="date">
<input type="submit" value="Submit">
</form>
<?php
$new_date = date('Y-m-d', strtotime($_POST['calendar']));
echo $new_date . '<br>';
var_dump(strtotime($_POST['calendar']));
?>
$ php -S localhost:8080
注意“提交”按钮。最后一个命令启动内置的PHP Web服务器。然后我可以在地址栏中输入“localhost:8080”,在我喜欢的网页浏览器中显示该页面。当我选择日期并提交表格时,我可以看到时间戳。