php - 如何从字符串中分离时区和日期时间?
问题描述
我有一个从文本文件名中获取的字符串。
$string = "20181011000000GMT+0800"
// trying to convert it
Carbon::createFromFormat('YmdHisTO', $string)->format...
它向我显示了这个错误。
发现意外数据。在数据库中找不到时区数据丢失
如果日期时间字符串以 GMT+0800 结尾,我如何分隔日期时间和时区?
解决方案
您可以通过对正在使用的格式字符串稍作更改来解析该格式:
$string = "20181011000000GMT+0800";
Carbon::createFromFormat('YmdHisT+', $string);
该+
标志告诉解析器忽略第一个时区标识符 ( GMT ) 之后的所有内容。严格来说,没有它也可以工作+
,但为了清楚起见,我更喜欢使用它。不过取决于你。
实际上,对此进行更多测试,我不确定加号是否相关。我认为任何一个时区格式字符(T
和O
)都只是在吞噬所有时区信息,而不仅仅是它们的特定部分。DateTime 的解析器有时可能有点雷区。
推荐阅读
- snmp - 用于 AES 的 authPriv 的 net-snmp v3 问题
- sql-server - Matlab 数据库错误:具有聚集列存储索引的表不支持游标
- amazon-web-services - 来自 SDK 的 AWS Cognito 挂钩
- dll - 从元机器人存储的 dll 文件在哪里
- android - 用户已创建但无法登录
- c# - 如何访问 DataGrid.RowDetailsTemplate 中文本块内的数据
- mysql - 分组 concat 以包含相应的数据
- c# - 循环 XML 文件并添加到列表 c#
- java - 为什么for循环在setText方法中不起作用
- javascript - 有没有办法在运行采样器之前添加动态标题,如授权?