从输入类型=“日期”值到一个 Php 变量


FROM input type="date" value TO a Php variable

我想将 的值"保存"到 php 变量中,所以如果在"datebox"中有类似 11/02/2016 的内容,我想将此值保存在 $date 上,那么我可以做echo $date;并再次查看 11/02/2016日期选择器很重要

我尝试了两种方法:

1.

<head>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <!-- Today date -->
    <input type="date" name="today" value="<?php echo date("Y-m-d");?>">
</form>
</body>

<?php
    $date = date('Y-m-d', strtotime($_POST['today']));
    echo "Today is $date";
?>

此输出:今天是 1970-01-01

阿拉伯数字。

<head>
<script>
function myFunction() {
    var date = document.getElementById("today").value;
    document.getElementById("here").innerHTML = date;
}
</script>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <input type="date" name="today" value="<?php echo date("Y-m-d");?>">
    <input type="hidden" id="here" name="this">
</form>
</body>

<?php
    $data = $_POST['this']));
    echo "Today is $data";
?>

此输出:今天是

有人可以帮我吗?

提前谢谢。

表单

中缺少提交元素,这意味着表单未处理任何内容。所以放提交按钮来处理表格。试试这段代码。

<head>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="date" name="today" value="<?php echo date("Y-m-d");?>">
<input type="submit" name="a">
</form>
</body>
if(isset($_POST['a']))
{
  $date = date('Y-m-d', strtotime($_POST['today']));
  echo "Today is $date";
}

您没有提交元素,并且在输出中强制使用 null/0。 第一个的结果是你从不提交任何东西。 因此,您的表单实际上不会处理任何内容,表单在实际提交之前不会执行任何操作。

您的第二个错误导致代码始终输出 Unix 纪元,这就是 int 结果为 0 的时间戳。 您需要为您使用的任何服务器打开错误。 关闭错误或抑制错误似乎是一个好主意,但它会导致许多易于修复的问题仍未诊断。

此代码应该适用于 PHP 5.4 及更高版本。

<?php
     $self = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '#';
     $now = date("Y-m-d");
     $today = isset($_POST['today']) ? $_POST['today'] : (new DateTime)->format('Y-m-d');
     $date = date('Y-m-d', strtotime($today));
     $formattedResult = "Today is $date";
?>
    <form action="<?= $self; ?>" method="POST">
    <input type="date" name="today" value="<?= $today;?>">
    <button type='submit' >
        You must submit the form to process it
        </button>
</form>
<?= $formattedResult;?>
</body>

使用内置函数 DateTime 你可以做

date_default_timezone_set("Europe/London"); //Set your timezone
$dateNow = new DateTime;
echo $dateNow->format('d/m/Y'); // Will echo 11/02/2016

http://php.net/manual/en/timezones.php 支持的时区列表

编辑:包括您的 HTML:

<?php 
    date_default_timezone_set("Europe/London"); //Set your timezone
    $date = new DateTime;
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <!-- today date-->
    <input type="date" name="today" value="<?php echo $date->format('Y-m-d'); ?>">
    <input type="submit" name="test" value="test">
</form>

然后稍后:

<?php
    $datePOST = new DateTime($_POST['today']);
    echo $datePOST->format('d/m/Y');
?>

我希望这就是你要找的。