带有时区的 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 时间戳的主要内容,如果未能解决你的问题,请参考以下文章