消除日期

时间:2014-04-13 04:45:18

标签: php sanitization input-sanitization

我正在使用javascript日期选择器,允许用户选择日期。但是,我还希望在进入数据库之前清理发布的日期数据。我在这里没有看到任何清理过滤器:http://us2.php.net/manual/en/filter.filters.sanitize.php

在进入数据库之前清理日期的最佳方法是什么?

这将是帖子的原始值:

$datepick = $_POST['date'];
// wich is 04/12/2014

然后我将其转换为数据库:

$date = date("Y-m-d", strtotime($datepick));

谢谢!

3 个答案:

答案 0 :(得分:11)

如果您的约会对象是" 03/02 / 2014"然后你可以通过regexp简单地清理你的变量:

$date = preg_replace("([^0-9/])", "", $_POST['date']);

这只允许数字(0-9)和fwd斜线(/)。

答案 1 :(得分:4)

格式化日期会对其进行清理,因为:

  1. 如果格式化程序成功,那么它只是一个日期,语法由格式字符串控制。
  2. 如果失败,则返回FALSE。
  3. 这是真的:

    DateTime::format
    DateTimeImmutable::format
    DateTimeInterface::format
    date_format()
    Date($format, $date_string)
    

答案 2 :(得分:0)

此表达式可用于支持12/12/2016和12-12-1993格式。

filter_var (preg_replace("([^0-9/] | [^0-9-])","",htmlentities($input)));