【问题标题】:PHP - codeigniter - control date formatPHP - codeigniter - 控制日期格式
【发布时间】:2012-09-11 13:59:05
【问题描述】:

我有一个表单,用户可以使用它来编辑自己的生日,我将生日以15/24/1989 的格式保存在数据库中,即 dd/mm/yyyy

如何检查表单生日帖子值的格式是否如图所示?

如果我过了 12/00/hello 怎么办?

我认为我只需要数字并且在日期范围内 01 > dd mm yyyy

【问题讨论】:

  • 这是fb标准:/我也无法消化,需要告诉它标记zuchenbergggg

标签: php validation codeigniter date


【解决方案1】:
$date = date("d/m/Y", strtotime($this->input->post('date')));

要以这种格式验证日期,您应该使用此函数。

function checkDateFormat($date) {
    if (preg_match('/^\d{2}\/\d{2}\/\d{4}$/', $date)) {
        if(checkdate(substr($date, 3, 2), substr($date, 0, 2), substr($date, 6, 4)))
            return true;
        else
            return false;
    } else {
        return false;
    }
}

它将检查日期格式,并使用 PHP checkdate() 函数检查实际日期本身。

checkDateFormat("10/10/2010"); // true
checkDateFormat("29/02/2008"); // true
checkDateFormat("29/02/2007"); // false
checkDateFormat("10/10/20101"); // false
checkDateFormat("ilikecookie"); // false

等等

【讨论】:

  • 和上面的答案一样,15/24/1989
  • @Aaaaaaa 你不要使用 jquery 日期选择器来限制你的用户输入无效日期
  • @Aaaaaaa 请参考手册,如果您传递一个日期字符串,它将解析为日期:php.net/manual/en/function.strtotime.php
  • js 没问题,但我说的是服务器端,因为 js 是可破解的
  • 我尝试了这段代码但没有成功我这样做:if(!$birthday or !date("d/m/Y", strtotime($birthday)))
【解决方案2】:

使用strtotime

date("d/m/Y", strtotime(this->input->post('date'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2018-05-05
    相关资源
    最近更新 更多