相关疑难解决方法(0)

用于检查字符串是否为日期的函数

我正在尝试编写一个函数来确定字符串是否是使用PHP的日期/时间.基本上有效的日期/时间如下:

 2012-06-14 01:46:28
Run Code Online (Sandbox Code Playgroud)

显然虽然它的完全动态任何值都可以改变,但它应该总是以形式出现XXXX-XX-XX XX:XX:XX,如何编写正则表达式来检查这个模式,如果匹配则返回true.

php regex validation datetime date

54
推荐指数
6
解决办法
9万
查看次数

php日期验证

我试图建立一个PHP日期验证(MM/DD/YYYY),但我遇到了问题.这是我得到的样本:

$date_regex = '%\A(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d\z%'; 

$test_date = '03/22/2010'; 
if (preg_match($date_regex, $test_date,$_POST['birthday']) ==true) {
    $errors[] = 'user name most have no spaces';`
Run Code Online (Sandbox Code Playgroud)

php validation date

47
推荐指数
4
解决办法
9万
查看次数

php获取区域设置特定的日期格式

确定当前给定语言环境的短日期格式的最佳方法是什么?

例如,如果我的脚本的语言环境设置为荷兰语,我想以某种方式获取在该特定语言环境中使用的短日期格式,它将是:

DD-MM-YYYY

如果它设置为American,我想在美国语言环境中获取日期格式:

毫米/日/年

等等...

php datetime date

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

preg_match 错误未知修饰符 '('

这有什么问题吗?

\n\n
public static function validaDataHoraBR($data_hora){\n  $pattern = "/^([1-9]|0[1-9]|[1,2][0-9]|3[0,1])/([1-9]|1[0,1,2])/\\d{4} ([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}(:([0-5][0-9])){1,2}$/";\n  return (preg_match($pattern, $data_hora)) ? array(true) : array(false,\' n\xc3\xa3o \xc3\xa9 uma data e hora no formato BR!<br>\'); \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此模式验证了这一点 - 20/08/2011 21:00:00

\n\n

错误:消息:preg_match() [function.preg-match]:未知修饰符 \'(\'

\n

php regex preg-match

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

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检查用户输入日期

因此,用户可以通过键入或使用日期选择器输入出生日期.这可能会出错,所以在服务器端我想检查它是否是一个有效的日期.

我在strtotime()上阅读了很多,看了很多例子,但不是100%正确的例子.

这就是我所拥有的:

$geboortedatum = $_POST['geboortedatum'];
$geboortedatum = date("Y-m-d", strtotime($geboortedatum));
list($y, $m, $d) = explode("-", $geboortedatum);

// var_dump(checkdate($d,$m,$y));
if(checkdate($d, $m, $y)) {
    echo "OK Date";
}
else {
    echo "BAD Date";
    exit();
}
Run Code Online (Sandbox Code Playgroud)

这大部分时间都有效.有没有可靠的方法来检查输入是否是真实且正确的日期?

//编辑

那不是一个好例子!当用户输入31-31-1980时,它也不起作用.这也是有效的,虽然不应该!

php validation date

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

标签 统计

php ×6

date ×4

validation ×3

datetime ×2

preg-match ×2

regex ×2