![](/img/trans.png)
[英]How to get Carbon time with format like that '2019-07-20T09:20:33+00:00' in PHP
[英]What kind of data time format and how to process this in php 2021-07-09T14:09:47.529751-04:00
我使用了一些获取到期日期的 api
2021-07-09T14:09:47.529751-04:00
我如何处理它并将其存储在数据库中。 我是否将其存储为日期时间? 它有任何与之相关的时区吗?
这是正确的,但我如何处理时区。 我的服务器有一个不同的时区,所以如果我存储这个值它会不正确吗?
echo date( "Y-m-d H:i:s", strtotime("2021-07-09T14:09:47.529751-04:00") );
您正在查看的日期格式是ISO 8601 。 Strtotime() 会将其转换为 UTC 格式的 unix 时间戳,您可以将其作为数字保存到数据库中。 该数字应大于 4 个字节,以免出现2038 年问题。 每次读取该值时,都必须将其转换为用户的正确时区。 这是最简单的方法。 您永远不必手动修复数据库中的日期。
如果要将其作为日期保存到数据库中,您可能仍希望将日期保存为 UTC 并在显示值时应用任何转换。 保存前用 gmdate() 转换它:
echo gmdate( "Y-m-d H:i:s", strtotime("2021-07-09T14:09:47.529751-04:00") );
如果你总是显示一个时区的值,你可以在 php.ini 中设置时区。 但这并不是最好的方法。 最好明确您的程序使用的时区并在代码中明确设置它。
当您想显示其他时区的值时,请参阅此问题或settimezone 的手册。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.