cakePHP 使用 I18 Time addMinutes 函数更新每个相关变量,而不仅仅是当前实例
cakePHP use of I18 Time addMinutes function updates every related variable, not just the current instance
我一直在尝试为竞争对手的不同航班设置开始时间。 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( '/' );
}
\src\Controller\TestsController.php (line 89)
'BTIME: 9/14/21, 6:09 PM USETIME: 9/14/21, 6:09 PM'
' 我的时间:9/14/21,6:24 下午 BTIME:9/14/21,6:24 下午 USETIME:9/14/21,6:24 下午'
' 我的时间:9/14/21,6:39 下午 BTIME:9/14/21,6:39 下午 USETIME:9/14/21,6:39 下午'
' 我的时间:9/14/21,6:54 下午 BTIME:9/14/21,6:54 下午 USETIME:9/14/21,6:54 下午'
' 我的时间:9/14/21,7:09 下午 BTIME:9/14/21,7:09 下午 USETIME:9/14/21,7:09 下午'
' 我的时间:9/14/21,7:24 下午 BTIME:9/14/21,7:24 下午 USETIME:9/14/21,7:24 下午'
' 我的时间:9/14/21,7:39 下午 BTIME:9/14/21,7:39 下午 USETIME:9/14/21,7:39 下午'
'BTIME: 9/14/21, 7:39 PM USETIME: 9/14/21, 7:39 PM'
' 我的时间:9/14/21,7:54 下午 BTIME:9/14/21,7:54 下午 USETIME:9/14/21,7:54 下午'
' 我的时间:9/14/21,8:09 下午 BTIME:9/14/21,8:09 下午 USETIME:9/14/21,8:09 下午'
您的所有变量 a_time
、b_time
和 use_time
都指向同一个对象。此外 \Cake\I18n\Time
是可变的,所以 $mytime
也是同一个对象。
如果您想要不可变的时间对象,请改用 \Cake\I18n\FrozenTime
。这些对象的时间操作方法将 return 个新实例。
另见
我一直在尝试为竞争对手的不同航班设置开始时间。 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( '/' );
}
\src\Controller\TestsController.php (line 89)
'BTIME: 9/14/21, 6:09 PM USETIME: 9/14/21, 6:09 PM'
' 我的时间:9/14/21,6:24 下午 BTIME:9/14/21,6:24 下午 USETIME:9/14/21,6:24 下午'
' 我的时间:9/14/21,6:39 下午 BTIME:9/14/21,6:39 下午 USETIME:9/14/21,6:39 下午'
' 我的时间:9/14/21,6:54 下午 BTIME:9/14/21,6:54 下午 USETIME:9/14/21,6:54 下午'
' 我的时间:9/14/21,7:09 下午 BTIME:9/14/21,7:09 下午 USETIME:9/14/21,7:09 下午'
' 我的时间:9/14/21,7:24 下午 BTIME:9/14/21,7:24 下午 USETIME:9/14/21,7:24 下午'
' 我的时间:9/14/21,7:39 下午 BTIME:9/14/21,7:39 下午 USETIME:9/14/21,7:39 下午'
'BTIME: 9/14/21, 7:39 PM USETIME: 9/14/21, 7:39 PM'
' 我的时间:9/14/21,7:54 下午 BTIME:9/14/21,7:54 下午 USETIME:9/14/21,7:54 下午'
' 我的时间:9/14/21,8:09 下午 BTIME:9/14/21,8:09 下午 USETIME:9/14/21,8:09 下午'
您的所有变量 a_time
、b_time
和 use_time
都指向同一个对象。此外 \Cake\I18n\Time
是可变的,所以 $mytime
也是同一个对象。
如果您想要不可变的时间对象,请改用 \Cake\I18n\FrozenTime
。这些对象的时间操作方法将 return 个新实例。
另见