我刚刚偶然发现了一些非常奇怪的事情。我使用“Carbon”包来生成 DateTime 对象。
我使用以下代码创建 2016 年 9 月开始的日期时间字符串:
Carbon::create()->month(9)
如果我使用 Laravel 的“dd()”函数输出此内容,我会收到以下输出:
Carbon\Carbon {
+"date": "2016-10-01 10:22:36.000000"
+"timezone_type": 3
+"timezone": "Europe/Vienna"
}
它返回的是 10 月 1 日,而不是 9 月 1 日!每隔一个月就可以正常使用。
我也尝试过这些:
Carbon::now()->month(9)
(new Carbon)->month(9)
但我得到同样的错误结果。
还有其他人遇到过这个错误吗?或者有人可以尝试一下并告诉我您是否收到相同的输出吗?或者我只是做错了什么,尽管我什么也想不起来?
提前致谢。
我猜问题出在今天的日期,即 31 号。
Carbon::create()->month(9)
尝试在九月的同一天进行。由于9月没有31日,所以又回到10月1日。尝试:
Carbon::create()->day(1)->month(9);
Or
Carbon::create()->startOfMonth()->month(9);
Or
Carbon::create(null, 9);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)