带有时区的 if-modified-since 的 PHP 时间戳

Posted

技术标签:

【中文标题】带有时区的 if-modified-since 的 PHP 时间戳【英文标题】:PHP timestamp for if-modified-since with timezone 【发布时间】:2015-12-18 22:37:07 【问题描述】:

我在 mysql 中存储了以下格式的时间戳

$if_modified_since = date('Y-m-d H:i:s');

时间戳是使用服务器的默认时区保存的,在我的例子中是EST。我需要发送带有if-modified-since 标头的CURL 请求。

curl_setopt($ch, CURLOPT_HTTPHEADER, array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T',$if_modified_since)));

我将EST 中的时间转换为GMT 的最佳方式是什么?还有一种方法可以通过检查服务器时区使其完全通用(而不仅仅是在EST 中进行硬编码)?

【问题讨论】:

【参考方案1】:

这对我有用:

$d = DateTime::createFromFormat('Y-m-d H:i:s', $if_modified_since, new DateTimeZone(ini_get('date.timezone'))); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T',$d->getTimestamp())));

【讨论】:

以上是关于带有时区的 if-modified-since 的 PHP 时间戳的主要内容,如果未能解决你的问题,请参考以下文章

Cloudfront如何每次都避免If-Modified-Since标头请求

如何防止 Web 浏览器对缓存文件发出“If-Modified-Since”请求?

java 带有时区的Java 8日期时间示例和可用时区的打印列表

如何在 python 中使用带有 datetime 对象的时区?

如何在 python 中使用带有 datetime 对象的时区?

如何将字符串转换为带有时区的时间戳?