我一直在尝试为竞争对手的不同航班设置出发时间。addMinutes函数似乎更新了与"one"相关的每个变量。我在试着改变。这是预期的结果吗,还是我错过了一些非常简单的东西?
谢谢你的帮助,
public function test_i18_addminutes( $a_time = null )
{
$b_time = $a_time ?: Time::now();
for ( $i = 1; $i < 5; $i++ ) {
$use_time = $b_time;
debug( "BTIME: $b_time USETIME: $use_time" );
for ( $j = 1; $j < 7; $j++ ) {
$mytime = $use_time->addMinutes( 15.0 );
debug( " MYTIME: $mytime BTIME: $b_time USETIME: $use_time" );
}
}
$this->redirect( '/' );
}
srcControllerTestsController.php (line 89)
'BTIME: 9/14/21,6:09 PM'
' MYTIME: 9/14/21,6:24 PM BTIME: 9/14/21,6:24 PM USETIME: 9/14/21,6:24 PM'
' MYTIME: 9/14/21,6:39 PM BTIME: 9/14/21,6:39 PM USETIME: 9/14/21,6:39 PM'
' MYTIME: 9/14/21,6:54 PM BTIME: 9/14/21,6:54 PM USETIME: 9/14/21,6:54 PM'
' MYTIME: 9/14/21,7:09 PM' BTIME: 9/14/21,7:09 PM'
' MYTIME: 9/14/21,7:24 PM BTIME: 9/14/21,7:24 PM USETIME: 9/14/21,7:24 PM'
' MYTIME: 9/14/21,7:39 PM BTIME: 9/14/21,7:39 PM USETIME: 9/14/21,7:39 PM'
'BTIME: 9/14/21,7:39 PM'
' MYTIME: 9/14/21,7:54 PM BTIME: 9/14/21,7:54 PM USETIME: 9/14/21,7:54 PM'
' MYTIME: 9/14/21,8:09 PM BTIME: 9/14/21,8:09 PM USETIME: 9/14/21,8:09 PM'
所有的变量,a_time
,b_time
和use_time
,都指向同一个对象。此外,CakeI18nTime
是可变的,因此$mytime
也将是相同的对象。
如果你想要不可变的时间对象,使用CakeI18nFrozenTime
代替。这些对象的时间操作方法将返回新的实例。
参见
- 食谱比;日期,时间比;不可变日期和时间