php - php date() 返回特定月份的错误月份
问题描述
我非常困惑为什么使用以下代码在某些日期 date() 是错误的。下面列出的月份与以数字形式显示错误月份的代码示例相同。
echo $month
= 2019 年 9 月
$month_explode = explode(' ', $month);
$month_explode[0]
= 九月
$month_explode[1]
= 2019
echo date("m", strtotime($month_explode[0]));
= 10 这将是 10 月
接下来的几个月不工作...
- 十一月回归 12
- 九月回归 10
- 六月回归 07
- 四月回归 05
- 二月回归 03
难道我做错了什么?
解决方案
当我正在审查我的问题时,它突然袭击了我。我发布这个,也许这会帮助其他人处理同样的问题。
如果您只是在 strtotime 中使用月份,它将自动以数字形式附加当前的“月中日”和“年”。因为今天是 31 日,所以它会尝试计算不存在的 9 月 31 日。所以它会自动跳到下个月。列出的所有月份都相同。如果我将代码更改为以下,一切正常,因为每个月都有一个“1st”。
echo date("m", strtotime("first day of {$month_explode[0]}"));
推荐阅读
- ios - 如何在 firebase 查询后将值附加到字典?
- python - 为什么此代码中存在未绑定的本地错误?
- html - 我需要锁定文本
- mysql - Mysql 服务器未在从 AMI 创建的 EC2 实例上运行
- javascript - 如何将字符串中的单词与列表中的单词完全匹配?
- mysql - 如何使用 3 个表编写带有连接和条件总和的 mysql 查询
- haskell - `(>>=)` 可以重新声明为 `(a -> mb) -> ma -> mb` 吗?
- python - 列出包含无法正常工作的类对象的列表的内容
- hibernate - 休眠:OneToMany 关系中的 PSQLException
- c# - 使用 AcquireTokenSilent 刷新 access_token