php - 检查用户出生日期为 18 岁或以上的功能并不总是正常工作
问题描述
我是初学者网络开发人员。我在我的项目中使用 Laravel 5.8。我有这个代码:
if ($this->calcutateAge($request->input('date')) < 18) {
return Redirect::back()->withErrors(['You are a minor. Registration is allowed for adult users']);
}
function calcutateAge($dob)
{
$dob = date("Y-m-d", strtotime($dob));
$dobObject = new DateTime($dob);
$nowObject = new DateTime();
$diff = $dobObject->diff($nowObject);
return $diff->y;
}
它工作正常。但我对日期前 2045-12-12 有疑问。此功能不起作用。年份:2015-12-12 - 没关系。
我该如何修复它?
解决方案
我建议你应该使用碳。
use Carbon\Carbon;
function calcutateAge($dob){
return \Carbon::parse($dob)->age;
}
推荐阅读
- java - 是否可以在日志中公开 Dropwizard 指标
- javascript - Stripe node js api 接受 T/C 的问题
- azure - 无法在 Freenom 提供商中将 TXT 记录设置为域
- java - 使用构造函数创建超类和子类 - Java
- haskell - 使用 Haskell 遍历元组列表
- arm - 如何在 gnu 汇编程序中使用 TBB 指令(Cortex-M3)?
- html - html部分背景图片切换
- r - 错误 sh: 1: R/rJava/java: 权限被拒绝
- node.js - Node.js 写入 YAML 文件
- visual-studio-code - 任何让工作区/文件夹设置仅适用于该工作区/文件夹中的文件而不适用于工作区外的随机文件的方法?