碳 addWeeks() 函数不起作用

all*_*ius 4 php date php-carbon

我在 PHP 中用 Carbon 创建了一些日期,但我似乎做错了什么。

这是我的代码:

$start = Carbon::create(2015, rand(6,7), rand(1,30), 0);
$end = $start->addWeeks(3);

echo "start time: " . $start;
echo "<br />";
echo "end time: " . $end;
Run Code Online (Sandbox Code Playgroud)

上面的输出是两个完全相同的日期,例如:

start time: 2015-07-01 00:00:00
end time: 2015-07-01 00:00:00
Run Code Online (Sandbox Code Playgroud)

我参考了文档,可以在这里找到:http : //carbon.nesbot.com/docs/#api-addsub。有谁知道我做错了什么?

m02*_*3u5 7

我还没有使用过 Carbon,但我会说那些 Carbon 对象是可变的。此外,大多数函数似乎返回$this方法链接(又名fluent interface)。

因此,在执行$end = $start->addWeeks(3);your$end实际上与$start. (只是一个聪明的猜测)

为避免这种情况,请尝试clone在操作之前(如果可能)或创建另一个对象。

版本 1

$start = Carbon::create(2015, rand(6,7), rand(1,30), 0);
$end = clone $start;
$start->addWeeks(3);
Run Code Online (Sandbox Code Playgroud)

版本 2

$start = Carbon::create(2015, rand(6,7), rand(1,30), 0);
$end = Carbon::create(2015, rand(6,7), rand(1,30), 0);
$start->addWeeks(3);
Run Code Online (Sandbox Code Playgroud)