如何从datapicker获取日期,它显示我的日期为1/1/1970

时间:2017-12-31 19:17:07

标签: javascript php datetime datepicker

请有人可以帮助我如何从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>

3 个答案:

答案 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');

here Live

输出:

  '2017-12-31`

DateTime提供更多功能,看起来比datestrtotime“传统”方式更清晰。

答案 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”,在我喜欢的网页浏览器中显示该页面。当我选择日期并提交表格时,我可以看到时间戳。