gpt4 book ai didi

php - 使用 PHP 的 DateTime 类验证有效日期

转载 作者:IT王子 更新时间:2023-10-29 00:13:46 24 4
gpt4 key购买 nike

以下是我之前验证日期的方式。我也有自己的函数来转换日期格式,但是,现在我正在使用 PHP 的 DateTime 类,因此不再需要它们。我应该如何最好地使用 DataTime 验证有效日期?还请让我知道您是否认为我应该首先使用 DataTime。谢谢

附言。我使用的是面向对象的风格,而不是过程风格。

static public function verifyDate($date)
{
//Given m/d/Y and returns date if valid, else NULL.
$d=explode('/',$date);
return ((isset($d[0])&&isset($d[1])&&isset($d[2]))?(checkdate($d[0],$d[1],$d[2])?$date:NULL):NULL);
}

最佳答案

你可以试试这个:

static public function verifyDate($date)
{
return (DateTime::createFromFormat('m/d/Y', $date) !== false);
}

这输出真/假。您可以直接返回 DateTime 对象:

static public function verifyDate($date)
{
return DateTime::createFromFormat('m/d/Y', $date);
}

然后您会返回一个 DateTime 对象,如果失败则返回 false。

更新:

感谢 Elvis Ciotti,他展示了 createFromFormat 接受无效日期,例如 45/45/2014。更多信息:https://stackoverflow.com/a/10120725/1948627

我用严格检查选项扩展了方法:

static public function verifyDate($date, $strict = true)
{
$dateTime = DateTime::createFromFormat('m/d/Y', $date);
if ($strict) {
$errors = DateTime::getLastErrors();
if (!empty($errors['warning_count'])) {
return false;
}
}
return $dateTime !== false;
}

关于php - 使用 PHP 的 DateTime 类验证有效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com