Inv*_*tax 4 php datetime date laravel php-carbon
我正在Laravel 应用程序中使用 php Carbon包来操作我的日期。我在尝试生成日期(未来 x 天)时遇到一些奇怪的结果
请看一下这段代码:
$start_date = Carbon::tomorrow('Europe/London');
$end_date = $start_date->addDays($tier->duration_days);
Log::debug('Carbon::now(): '.Carbon::now());
Log::debug('Carbon::tomorrow(Europe/London): '.Carbon::tomorrow('Europe/London'));
Log::debug('$start_date: '.$start_date);
Log::debug('$end_date: '.$end_date);
Run Code Online (Sandbox Code Playgroud)
上面的代码将打印出以下调试行:
2017-04-17 21:46:31] local.DEBUG:Carbon::now():2017-04-17 21:46:31
[2017-04-17 21:46:31] local.DEBUG:Carbon: :明天(欧洲/伦敦):2017-04-18 00:00:00 [2017-04-17 21:46:31] local.DEBUG:$start_date:2017-05-16 00:00:00 [2017- 04-17 21:46:31] local.DEBUG: $end_date: 2017-05-16 00:00:00
使用 Carbon::tomorrow() 将打印出正确的日期,但是使用技术上使用相同函数的 $start_time 返回错误的日期。有人可以建议这里可能出了什么问题吗?
仅供参考,我已在文件中将欧洲/伦敦设置为时区config/app.php
。
$date->addDays
实际上并不返回添加了天数的实例,它在修改天数后返回相同的实例(这会产生很大的差异)。
因此,您应该首先将日期复制到新实例中,然后添加天数。
$start_date->copy()->addDays($tier->duration_days);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1429 次 |
最近记录: |