FROM输入类型=“日期”值到Php变量

时间:2016-02-11 15:35:56

标签: javascript php html

我想将“保存”值转换为php变量,因此如果在“datebox”中有类似 11/02/2016 的内容,我想将此值保存在{{ 1}},然后我可以$date再看一遍 11/02/2016 日期选择器很重要

我试过两种方式:

1

echo $date;

<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>

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

2。

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

<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>

此输出:今天是

有人可以帮帮我吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

表单中缺少“提交元素”,这意味着表单不处理任何内容。因此,请单击“提交”按钮处理表单。请尝试此代码。

<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";
}

答案 1 :(得分:0)

使用内置函数DateTime可以

<a href="#" class="link back"> Go back </a>

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

编辑: 包括您的HTML:

date_default_timezone_set("Europe/London"); //Set your timezone
$dateNow = new DateTime;

echo $dateNow->format('d/m/Y'); // Will echo 11/02/2016

然后是:

<?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>

我希望这就是你要找的东西。

答案 2 :(得分:0)

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

您的第二个错误导致代码始终输出Unix Epoch,这是一个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>