相关疑难解决方法(0)

正确确定日期字符串是否为该格式的有效日期

我从API接收日期字符串,格式为yyyy-mm-dd.

我目前正在使用正则表达式验证字符串格式,这可以正常工作,但我可以看到一些情况,根据字符串,它可能是一个正确的格式,但实际上是一个无效的日期.即2013-13-01,例如.

有没有更好的方法在PHP中获取字符串,2013-13-01并告诉它是否是格式的有效日期yyyy-mm-dd

php datetime date

170
推荐指数
11
解决办法
24万
查看次数

PHP preg_match与正则表达式工作

function validateDate( $date )
{ 
    echo $date;
    //2012-08-24 20:30:00
    if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这总是返回false.我使用了一个唯一的工具来构建正则表达式,它在那里工作得很好.当我将"/"添加到正则表达式时,麻烦就开始了.不知何故PHP似乎需要这些,但我不知道为什么,我不知道为什么它打破了我的正则表达式.

它应该返回TRUE for sth.像"2012-08-24 20:30:00"和"asdf2012-08-24 20:30:00asdf"或任何不符合我的正则表达式的任何错误

提前致谢!

-----------------------编辑感谢您的所有答案!

正如一些用户指出我的函数在样本日期"2012-08-24 20:30:00"返回true.但是,只有当我手动设置$ date ='2012-08-24 20:30:00'时才会这样做.如果我使用完全相同的字符串在我的代码中的其他地方调用该函数,则返回false.有谁知道为什么?

----------------------- EDIT2

对不起浪费你的时间,实际上是一些空格被添加到字符串中.在调用我的函数之前在我的日期使用trim()会给出正确的结果.

感谢大家!

php preg-match

1
推荐指数
1
解决办法
3210
查看次数

标签 统计

php ×2

date ×1

datetime ×1

preg-match ×1