php 两个日期之间的小数精度月份[已关闭]

r7s23pms  于 2022-12-10  发布在  PHP
关注(0)|答案(1)|浏览(163)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

2天前关闭。
Improve this question
我想计算两个日期之间的月数。
例如:
2022年10月19日至2022年12月6日~ 1,6个月
我试过这个,但不是每个月都是30天,所以这不是一个好办法:

$start = new DateTimeImmutable("2022-10-19");
$end = new DateTimeImmutable("2022-12-06");
$diffbetween = $start->diff($end);
$diffbetweenresult = round(($diffbetween->format('%a')) / 30, 2);

你能帮我吗?
非常感谢!

yi0zb3m4

yi0zb3m41#

如果要对所有天数进行平均加权以进行计算,则只能按以下步骤进行。一年的平均天数为365.25天(每4年366天),一个月的平均天数为30.4375天或2629800秒。此计算可以在一行中完成:

$start = "2022-10-19";
$end = "2022-12-06";
$floatMonth = (strtotime($end)-strtotime($start))/2629800;
//$floatMonth: float(1.5783709787817)

即使与整数月份存在差异,此计算也不会得出整数结果。从“2022-07-01”到“2023-01-01”的半年结果为6.0465。此结果与一般预期不相符。只有4年的期间会得出48个月。

相关问题