我一直在PHP中使用DateTime类,因为date()具有Unix时间戳的缺点.但是,这两种方法都没有检测到没有31天的月份的无效日期,但是尝试使用第31天.
示例代码:
try {
$date = new DateTime('02/31/2018');
$formattedDate = $date->format('Y-m-d');
}
catch (Exception $e) {
}
echo $formattedDate;
Run Code Online (Sandbox Code Playgroud)
示例输出:
2018-03-03
Run Code Online (Sandbox Code Playgroud)
更新1:
要使用checkdate(),我需要日期的组成部分.为此,我需要使用日期字符串作为构造函数来实例化DateTime对象.在'02/31/2018'的情况下,它将在实例化时将其转换为'03/03/2018'.此时,通过checkdate()运行组件月,日,年将为时已晚.解决办法是什么?
更新2:
如果我强制使用特定格式(例如mm/dd/yyyy),那么获取组件部分日期很容易,但如果我接受strtotime()接受的所有格式,则在通过strtotime()运行之前我无法执行checkdate - > date()或DateTime :: __ construct - > DateTime :: format().
我一直在PHP中使用DateTime类,因为date()具有Unix时间戳的缺点.但是,这两种方法都没有检测到没有31天的月份的无效日期,但是尝试使用第31天.
示例代码:
try {
$date = new DateTime('02/31/2018');
$formattedDate = $date->format('Y-m-d');
}
catch (Exception $e) {
}
echo $formattedDate;
Run Code Online (Sandbox Code Playgroud)
示例输出:
2018-03-03
Run Code Online (Sandbox Code Playgroud)
更新1:
要使用checkdate(),我需要日期的组成部分.为此,我需要使用日期字符串作为构造函数来实例化DateTime对象.在'02/31/2018'的情况下,它将在实例化时将其转换为'03/03/2018'.此时,通过checkdate()运行组件月,日,年将为时已晚.解决办法是什么?
更新2:
如果我强制使用特定格式(例如mm/dd/yyyy),那么获取组件部分日期很容易,但如果我接受strtotime()接受的所有格式,则在通过strtotime()运行之前我无法执行checkdate - > date()或DateTime :: __ construct - > DateTime :: format().
| 归档时间: |
|
| 查看次数: |
980 次 |
| 最近记录: |