繁体   English   中英

php 2021-07-09T14:09:47.529751-04:00 什么样的数据时间格式以及如何处理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM