cakePHP使用I18 Time addMinutes函数更新每个相关变量,而不仅仅是当前实例 &



我一直在尝试为竞争对手的不同航班设置出发时间。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_timeuse_time,都指向同一个对象。此外,CakeI18nTime是可变的,因此$mytime也将是相同的对象。

如果你想要不可变的时间对象,使用CakeI18nFrozenTime代替。这些对象的时间操作方法将返回新的实例。

参见

  • 食谱比;日期,时间比;不可变日期和时间

相关内容

最新更新