Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php日期和日期时间_Php_Date - Fatal编程技术网

php日期和日期时间

php日期和日期时间,php,date,Php,Date,php DateTime类的奇怪行为 $x = '23120-7-7'; $x = new \DateTime($x); var_dump($x); 给予 object(DateTime)#988 (3) { ["date"]=> string(19) "2000-07-07 23:12:00" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 我想验证date,但php中只有da

php DateTime类的奇怪行为

$x = '23120-7-7';
$x = new \DateTime($x);
var_dump($x);
给予

object(DateTime)#988 (3) {
  ["date"]=>
  string(19) "2000-07-07 23:12:00"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "UTC"
}
我想验证date,但php中只有datetime类。我怎样才能查到你的名字


我的日期是否有效?

如果您想要直接回答,可以使用“checkdate”方法。首先用破折号(-)分解日期可能,我不知道您使用的是什么样式的日期,然后使用checkdate。

使用日期\u从\u格式创建\u

$x = '23120-7-7';
$x = \DateTime::createFromFormat('Y-m-d', $x);
var_dump($x);
输出:

bool(false)
array(4) {
  ["warning_count"]=>
  int(1)
  ["warnings"]=>
  array(1) {
    [7]=>
    string(27) "The parsed date was invalid"
  }
  ["error_count"]=>
  int(2)
  ["errors"]=>
  array(2) {
    [4]=>
    string(40) "The separation symbol could not be found"
    [7]=>
    string(13) "Trailing data"
  }
}
要查看错误详细信息,请执行以下操作:

$errors = DateTime::getLastErrors();
var_dump($errors);
输出:

bool(false)
array(4) {
  ["warning_count"]=>
  int(1)
  ["warnings"]=>
  array(1) {
    [7]=>
    string(27) "The parsed date was invalid"
  }
  ["error_count"]=>
  int(2)
  ["errors"]=>
  array(2) {
    [4]=>
    string(40) "The separation symbol could not be found"
    [7]=>
    string(13) "Trailing data"
  }
}

尝试将其转换为时间戳,然后使用所需的格式设置新日期(“y-m-d”,时间戳),然后使用正则表达式检查错误

?我发现这个在线测试工具非常容易使用:然后看看屏幕右侧的comunity选项卡,找到一个合适的正则表达式来匹配日期格式。当然也可以自己打一个。这个正则表达式可以帮助您:^(19[0-9]{2}2[0-9]{3})-(0[1-9]{1[012])-([123]0}[012][1-9]{31)$its的日期时间格式,如YYYY-MM-DD