gpt4 book ai didi

php - Carbon - 为什么 addMonths() 改变月份的日期?

转载 作者:可可西里 更新时间:2023-11-01 12:43:33 27 4
gpt4 key购买 nike

这是一个简单的例子(今天是 2016-08-29):

var_dump(Carbon::now());
var_dump(Carbon::now()->addMonths(6));

输出:

object(Carbon\Carbon)#303 (3) {
["date"] => string(26) "2016-08-29 15:37:11.000000"
}
object(Carbon\Carbon)#303 (3) {
["date"] => string(26) "2017-03-01 15:37:11.000000"
}

对于 Carbon::now()->addMonths(6) 我期待 2017-02-29,而不是 2017-03-01.

我是否遗漏了有关日期修改的内容?

最佳答案

它比那更残废 - 减法有同样的问题。不过,有一些特殊的方法可以避免溢出:

function original(){ 
return new Carbon('2016-08-31');
};
function print_dt($name, $date){
echo $name . $date->toAtomString() . PHP_EOL;
};

print_dt('original: ', original());
echo '-----' . PHP_EOL;
print_dt('addMonths: ', original()->addMonths(6));
print_dt('addMonthsNoOverflow: ', original()->addMonthsNoOverflow(6));
echo '-----' . PHP_EOL;
print_dt('subMonths: ', original()->subMonths(2));
print_dt('subMonthsNoOverflow: ', original()->subMonthsNoOverflow(2));

输出:

original:            2016-08-31T00:00:00+00:00
-----
addMonths: 2017-03-03T00:00:00+00:00
addMonthsNoOverflow: 2017-02-28T00:00:00+00:00
-----
subMonths: 2016-07-01T00:00:00+00:00
subMonthsNoOverflow: 2016-06-30T00:00:00+00:00

关于php - Carbon - 为什么 addMonths() 改变月份的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com