php - PHP 日期让我很沮丧
问题描述
我正在尝试mm/yyyy
通过往返字符串来验证格式输入。问题:
<?php
$datestr = "06/2017";
$realdate = DateTime::createFromFormat('m/Y', $datestr);
$datestr2 = date_format($realdate,'m/Y');
echo "date in: $datestr\n";
echo "date out: $datestr2\n";
?>
产生以下结果:
日期:06/2017
日期:07/2017
为什么第二个值每月递增?
解决方案
因为您没有指定假设今天(31 日)的日期。没有 6 月 31 日,因此 PHP 假定为 7 月 1 日。
假设您始终使用示例中使用的日期格式,您可以通过为日期指定月份的第一天来轻松解决此问题:
$datestr = "01/06/2017";
$realdate = DateTime::createFromFormat('d/m/Y', $datestr);
$datestr2 = date_format($realdate,'m/Y');
echo "date in: $datestr\n";
echo "date out: $datestr2\n";
推荐阅读
- javascript - 更新存储中的数据后如何重新渲染组件
- flutter - 扩展从另一个文件调用的 Widget
- c++ - 系统(“暂停”)或保持窗口打开()?
- reactjs - 动态图像未渲染
- python - 查找 24 小时范围内的最大值,并提取该行的所有属性
- powershell - 需要附加这个powershell脚本,不知道怎么办
- javascript - 拖动不适用于反应使用手势
- php - Laravel RESTful api - 查询参数的动态数量
- powershell - 如何在powershell中获取连续3天失败的字符串名称
- java - webview自动打开时点击搜索输入