此问题与将时间戳存储到日期时间中的问题不同。 我有时间戳记,所以没有tz信息。 我也不能改变我的数据库结构 我使用的是雄辩的语言,但值得一提的是,手动执行MySQL查询插入操作也会发生此问题
我在做什么
我的API收到此时间戳:
1572864543
是
Assuming that this timestamp is in seconds:
GMT: Monday 4 November 2019 10:49:03
Your time zone: lunedì 4 novembre 2019 11:49:03 GMT+01:00
保存到数据库时,我不知道用户的MySQL时区配置是什么,但是我需要MySQL绝对不要更改我的时间戳。
我确定MySQL列是timestamp
我知道在Laravel中存储时间戳需要在类似sql的字符串中进行转换
我曾经尝试过
Carbon::createFromTimestamp($claims["date"])->toDateTimeString();
问题
它可以工作,但是MySQL获取我的字符串,应用其时区设置,将其设置为UTC,并在内部保存新时间戳。
所以检索
UNIX_TIMESTAMP(received_ts)
我得到了错误的结果。
问题
我绝对需要将时间戳保留在数据库中。如何保存时间戳而不进行更改?
混合信息
原因是我的产品安装在不可预测的服务器时区中;我也不能强迫用户将db时区更改为UTC。
实际上,我的应用的时区已经通过laravel config/app.php
文件强制为'UTC'
'timezone' => 'UTC',