0

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

所以基本上一个文件是 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>

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

4

5 回答 5

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 位数字。

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

于 2012-09-22T16:36:41.423 回答
1

尝试像这样格式化它

   <?php
      $date = new DateTime();
      echo $date->getTimestamp();
      echo $date->format('Y-m-d H:i:s');
    ?>
于 2012-09-22T16:46:11.000 回答
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>
于 2012-09-22T16:37:49.053 回答
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>

您可以从此链接 检查日期了解验证日期

于 2012-09-22T16:39:58.800 回答
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>

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

于 2012-09-22T16:42:25.053 回答