表单中的日期并验证

时间:2012-09-22 16:31:23

标签: php date

我有点困在这里如何为服务器的当前日期编写代码并验证它们。

所以基本上在一个文件上是form.php,我必须用dd / mm / yy编写服务器当前日期的代码,这可以由用户编辑。日期应以表单格式显示,例如在Web浏览器上应显示日期:[23/9/2012]。

和另一个文件是process.php,我必须验证日期。

所以对于我的form.php这是我到目前为止写的:

<html>
<body>
 <?php
    if (isset ($_POST["date"])){
    $date = date("d/m/y"($_POST["date"]));
    echo $date;
    }
?>
<form action="form.php" method="POST">
Date: <input type="text" name="date" value="Date" />

</form>
</body>
</html>

它在网络浏览器上显示的日期仅为日期:[日期]只是单词日期而不是日期。我已经被困了一个小时了。

5 个答案:

答案 0 :(得分:3)

您可以使用正则表达式执行此操作:

    <?php
    if (isset($_POST['date']) && !empty($_POST['date'])) {
        $date = trim($_POST['date']);
    }

    $regex = '/^((([1-2][0-9])|([1-9]))/([2])/[0-9]{4})|((([1-2][0-9])|([1-9])|(3[0-1]))/((1[0-2])|([3-9])|([1]))/[0-9]{4})$/';
    if (preg_match($regex, $date)) {
        $disp_date = $date;

        //update the date in db
        $error = '';
    }
    else {
       $error = 'Invalid date format<br />';

       //get last date from db
       $disp_date = $date_from_db;
    }
    ?>
    <?=$error?>
    <form action="" method="POST">
        <input type="text" value="<?=$disp_date?>" name="date" />
        <input type="submit" value="Submit Date" />
    </form>

正则表达式的工作原理: DD / MM / YYYY: DD必须是1-31,MM 1-12和YYYY是4位数。

编辑:修复了二月的问题。

答案 1 :(得分:1)

尝试将其格式化为此类

   <?php
      $date = new DateTime();
      echo $date->getTimestamp();
      echo $date->format('Y-m-d H:i:s');
    ?>

答案 2 :(得分:0)

<html>
<body>
<?php
   if(isset($_POST['date']) && strtotime($_POST['date'])){ # date validation
       $date = $_POST['date'];
   } else {
       $date = date('d/m/y');
   }        
?>
<form action="form.php" method="POST">
Date: <input type="text" name="date" value="<?php echo $date?>" />

</form>
</body>
</html>

答案 3 :(得分:0)

您可以获得当前日期并显示如下......

<html>
<body>
<?php
$today = date("j, n, Y");
?>
<form action="form.php" method="POST">
Date: <input type="text" name="date" value="<?php echo $today?>"/>
</form>
</body>
</html>

您可以通过此链接了解验证日期 check date

答案 4 :(得分:0)

你应该像这样重新安排你的程序:

<html>
<body>
 <?php
    if (!isset ($_POST["date"])){
        $date = date("d/m/y");
    else {
        $date = $_POST["date"];
    }
?>
<form action="form.php" method="POST">
Date: <input type="text" name="date" value="<?php echo $date; ?>" />

</form>
</body>
</html>

在这里,您将让用户在第一页加载时看到当前时间服务器,然后在之后看到编辑过的时间服务器。