Laravel 5 基于时区的对象到Unix时间戳

Laravel 5 基于时区的对象到Unix时间戳,laravel-5,timezone,unix-timestamp,php-carbon,Laravel 5,Timezone,Unix Timestamp,Php Carbon,我有一个格式为“Y-m-d H:I:s”的日期时间字符串,日期时间值为“2018-01-30 07:11:21” $carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago'); 如何从这个carbon对象获取Unix时间戳?只需在代码后面添加时间戳即可 $carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2

我有一个格式为“Y-m-d H:I:s”的日期时间字符串,日期时间值为“2018-01-30 07:11:21

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago');

如何从这个carbon对象获取Unix时间戳?

只需在代码后面添加
时间戳即可

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago')->timestamp;

如果有
数据丢失
错误。缺少的是您传递给它的数据,而不是完整的日期格式

试试这个

$timestp = Carbon::createFromFormat('Y-m-d H:i:s', Carbon::parse($trans['transaction_datetime']) ,Setting::get('timezone'))->timestamp;
您可以使用更改时区而不更改日期和时间

$dt = Carbon::parse('2020-03-27');
dump($dt);   //2020-03-27 00:00:00.0 Asia/Kolkata (+05:30)
dump($dt->shiftTimezone('utc'));  //2020-03-27 00:00:00.0 UTC (+00:00)

试过了,但它说错误异常,消息数据丢失代码在
php artisan tinker
中测试。你也应该能得到结果。我怀疑你的代码中还有另一部分破坏了它。试着运行你的
php artisan tinker
是的,我在tinker中试过,它可以工作。在代码中也可以做同样的事情,但它表示数据丢失。下面是正在使用的代码
$timestp=Carbon::createFromFormat('Y-m-d H:i:s',$trans['transaction_datetime',Setting::get('timezone'))->timestamp
你能给我看看你的
$trans['transaction\u datetime']
输出吗?我更新了我的答案,您在日期数据中添加了
Carbon::parse()
。这应该是可行的。
$dt = Carbon::parse('2020-03-27');
dump($dt);   //2020-03-27 00:00:00.0 Asia/Kolkata (+05:30)
dump($dt->shiftTimezone('utc'));  //2020-03-27 00:00:00.0 UTC (+00:00)