Jus*_*tin 54 php regex validation datetime date
我正在尝试编写一个函数来确定字符串是否是使用PHP的日期/时间.基本上有效的日期/时间如下:
2012-06-14 01:46:28
Run Code Online (Sandbox Code Playgroud)
显然虽然它的完全动态任何值都可以改变,但它应该总是以形式出现XXXX-XX-XX XX:XX:XX,如何编写正则表达式来检查这个模式,如果匹配则返回true.
Joe*_*oey 101
如果这是你的整个字符串,那么只需尝试解析它:
if (DateTime::createFromFormat('Y-m-d H:i:s', $myString) !== FALSE) {
// it's a date
}
Run Code Online (Sandbox Code Playgroud)
Bjo*_*ern 35
这是一种不使用正则表达式的不同方法:
function check_your_datetime($x) {
return (date('Y-m-d H:i:s', strtotime($x)) == $x);
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*art 23
如果您不知道日期格式:
/**
* Check if the value is a valid date
*
* @param mixed $value
*
* @return boolean
*/
function isDate($value)
{
if (!$value) {
return false;
}
try {
new \DateTime($value);
return true;
} catch (\Exception $e) {
return false;
}
}
var_dump(isDate('2017-01-06')); // true
var_dump(isDate('2017-13-06')); // false
var_dump(isDate('2017-02-06T04:20:33')); // true
var_dump(isDate('2017/02/06')); // true
var_dump(isDate('3.6. 2017')); // true
var_dump(isDate(null)); // false
var_dump(isDate(true)); // false
var_dump(isDate(false)); // false
var_dump(isDate('')); // false
var_dump(isDate(45)); // false
Run Code Online (Sandbox Code Playgroud)
Yog*_*try 11
一个较小的版本,可能会有所帮助:
if(strtotime($date_string)){
// it's in date format
}
Run Code Online (Sandbox Code Playgroud)
小智 8
在我的项目中,这似乎有效:
function isDate($value) {
if (!$value) {
return false;
} else {
$date = date_parse($value);
if($date['error_count'] == 0 && $date['warning_count'] == 0){
return checkdate($date['month'], $date['day'], $date['year']);
} else {
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将此函数用作PHP filter_var函数的参数。
yyyy-mm-dd hh:mm:ss格式的日期function filter_mydate($s) {
if (preg_match('@^(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$@', $s, $m) == false) {
return false;
}
if (checkdate($m[2], $m[3], $m[1]) == false || $m[4] >= 24 || $m[5] >= 60 || $m[6] >= 60) {
return false;
}
return $s;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89048 次 |
| 最近记录: |