首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么gmdate($date)与DateTimeZone('GMT')和setTimestamp()返回不同的值?

gmdate($date)与DateTimeZone('GMT')和setTimestamp()返回不同的值的原因是它们使用了不同的时间处理方式和时区设置。

  1. gmdate($date)是PHP中的一个函数,用于将一个时间戳转换为GMT(格林尼治标准时间)格式的日期和时间。它使用的是PHP默认的时区设置,通常是服务器的本地时区。如果服务器的时区设置与GMT不同,那么gmdate($date)返回的时间将会有偏差。
  2. DateTimeZone('GMT')是PHP中的一个类,用于表示和处理时区信息。通过创建一个DateTimeZone对象并将其应用于DateTime对象,可以确保日期和时间的处理基于GMT时区。这样可以避免时区偏差的问题。
  3. setTimestamp()是DateTime类中的一个方法,用于设置DateTime对象的时间戳。它接受一个整数参数,表示从UNIX纪元(1970年1月1日00:00:00 GMT)开始的秒数。setTimestamp()方法会根据DateTime对象的时区设置来解释和转换时间戳。如果时区设置不同,那么setTimestamp()返回的时间也会有偏差。

综上所述,gmdate($date)、DateTimeZone('GMT')和setTimestamp()之间返回不同值的原因是它们使用了不同的时区设置和时间处理方式。为了确保准确的GMT时间,建议使用DateTime类和DateTimeZone类来处理时间,并根据需要设置正确的时区。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【建议收藏】这些PHP考点知识你是否还记得?

— 打开目录句柄 readdir — 从目录句柄中读取条目 rewinddir — 倒回目录句柄 scandir — 列出指定路径中文件目录 数学 abs — 绝对 acos — 反余弦...expm1 — 返回 exp(number) - 1,甚至当 number 接近零也能计算出准确结果 floor — 舍去法取整 fmod — 返回除法浮点数余数 getrandmax...and twilight begin/end date_sunrise — 返回给定日期地点日出时间 date_sunset — 返回给定日期地点日落时间 date_time_set...::setTimestamp date_timezone_get — 别名 DateTime::getTimezone date_timezone_set — 别名 DateTime::setTimezone...date — 格式化一个本地时间/日期 getdate — 取得日期/时间信息 gettimeofday — 取得当前时间 gmdate — 格式化一个 GMT/UTC 日期/时间 gmmktime

1.1K20

PHP 常用函数大全

chop() Perl chop() 函数有所不同,它会删除字符串最后一个字符。...imagecolormatch 使一个图像中调色板版本颜色真彩色版本更能匹配 imagecolorresolve 取得指定颜色索引或有可能得到最接近替代 imagecolorresolvealpha...information about sunset/sunrise and twilight begin/end date_sunrise 返回给定日期地点日出时间 date_sunset 返回给定日期地点日落时间...DateTime::setTimestamp date_timezone_get 别名 DateTime::getTimezone date_timezone_set 别名 DateTime::setTimezone...date 格式化一个本地时间/日期 getdate 取得日期/时间信息 gettimeofday 取得当前时间 gmdate 格式化一个 GMT/UTC 日期/时间 gmmktime 取得 GMT 日期

3.6K21

PHP中日期相关函数(一

getOffset() 则是获取到与国际格林尼治时间(GMT差值,也就是子午线时间间隔,这里返回是秒,转换成小时后正好就是 8 小时。...getTransitions() 函数返回是所有时区转换时间,我测试时间是早上,返回 time 字段内容是格林尼治时间,offset 字段返回也是GMT时间差值。...GMT时间UTC时间是一致,我们在日常学习工作中如果接触到了这两个名词可以将它们看做是相同概念。...打印出来内容上面用 diff() 方法返回对象内容是一致,但是它构造函数参数很奇怪。...这时我们修改构造函数为其它数量,比如修改为 2 ,那么就只会返回到 9月15号 信息了。它不会受到结束日期约束,可以返回从开始日期到指定数量之后所有信息,大家可以自己尝试一下。

2.5K20

php dategmdate获取日期区别

PHP中时间有2个格式化函数:date()gmdate(),在官方文档中描述为date -- 格式化一个本地时间/日期   gmdate -- 格式化一个 GMT/UTC 日期/时间,返回是格林威治标准时...(GMT)。   ...举个例子,我们现在所在时区是+8,那么服务器运行以下脚本返回时间应该是这样:   当前时间假定是2007-03-14 12:15:27   echo date('Y-m-d H:i:s', time...+Apache下运行PHP所得结果,如果在Windows下运行,则2个函数返回都是:2007-03-14 04:15:27。   ...所以,我们应该给一个兼容性写法,统一使用gmdate,并手工设置当前时区,写法改进如下:   echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);   这样不管在

2K00

PHP中日期相关函数(二)

但,酒香不怕巷子深,好东西还是值得我们去深入学习研究,当然更好情况是可以在面对不同业务场景时灵活地使用这些对象才是我们学习根本目的。...DateTime DateTimeImmutable DateTimeImmutable 是日期表示对象,它与 DateTime 基本没什么区别,方法、属性都 DateTime 是一样,唯一区别就是在后面介绍操作方法中它不会修改自身...$date->setTimestamp(time()-84400); echo $date->format('U = Y-m-d H:i:s'), PHP_EOL; // 1601258165 = 2020...,这个在之前文章中 DateTimeZone 对象同名方法作用是类似的。...getTimestamp() getTimezone() 方法相信也不用多解释了,一个是返回当前 DateTime 对象对应时间戳,一个是返回一个时区对象。

2.1K10

Java日期及时间库插件 -- Joda Time.

它基本上类似于 DateTime,不同之处在于时间部分总是为该对象关联特定 DateTimeZone 时区午夜时分。 LocalDate :无时间类,只包含年月日。...当我们通过一个 API 方法操作 Joda 类时,我们必须捕捉该方法返回,因为我们正在处理实例不能被修改。...这一定义 JDK 相同,这就是为什么任何 Joda Instant 子类都可以 JDK Date Calendar 类兼容原因。...任何严格时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区各方存在利益关系的话)。...DateTimeZone 是 Joda 库用于封装位置概念类。许多日期时间计算都可以在不涉及时区情况下完成,但是仍然需要了解 DateTimeZone 如何影响 Joda 操作。

2.3K110

PHP中跨时区应用解决方法

现在有一个跨时区应用,不同时区登录用户需要看到自己时区时间,同时也要能够进行时区切换,有什么好办法么。...PHP中进行设置方法比较灵活多样,可以在php.ini中设置date.timezone属性、可以通过代码,调用ini_set(‘date.timezone’, ‘’)设置,也可以使用函数 date_default_timezone_set...PHP还提供了一个方便函数,gmdate(),可以让我们不用关心服务器时区设置而始终获得GMT时间,我思路就是基于这个函数。...其中 now() 始终返回gmt的当前时间; local_to_gmt() 可以将本地时间转换为gmt时间; gmt_to_local() 可以将gmt时间转换为本地时间; 考虑一个典型应用场景...这两个函数细节,其实都是根据时区,然后进行相应运算得来。计算时候,也可以考虑夏令时,但是所在时区夏令时开始结束时间,则需要自己维护。

1.8K10

PHP应用跨时区功能实现方法

PHP中要实现一个跨时区应用,也就是不同时区登录用户需要看到自己时区时间,同时也要能够进行时区切换。...PHP中进行设置方法比较灵活多样,可以在php.ini中设置date.timezone属性、可以通过代码,调用ini_set(‘date.timezone', ‘')设置,也可以使用函数 date_default_timezone_set...PHP还提供了一个方便函数,gmdate(),可以让我们不用关心服务器时区设置而始终获得GMT时间,我思路就是基于这个函数。...其中 now() 始终返回gmt的当前时间;local_to_gmt() 可以将本地时间转换为gmt时间;gmt_to_local() 可以将gmt时间转换为本地时间; 考虑一个典型应用场景:...这两个函数细节,其实都是根据时区,然后进行相应运算得来。计算时候,也可以考虑夏令时,但是所在时区夏令时开始结束时间,则需要自己维护。

1.2K31

PHP日期时间函数 :time(),date(),mktime()区别

strftime : 将服务器时间本地格式化。 getdate : 获得时间及日期信息。 gettimeofday : 取得目前时间。 gmdate : 取得目前 GMT 差后时间。...语法: string date(string format, int [timestamp]); 返回: 字符串 函数种类: 时间日期 内容说明返回©字符串依配置格式来决定。...若有传入时间戳记,则将时间戳记格式化返回;若无传入时间戳记,则将目前服务器时间格式化返回。要将日期转为其它语系格式,应使用setlocale() 及 strftime() 二个函数。..."m")-1,date("d"), date("Y")); $nextyear = mktime(0,0,0,date("m"), date("d", date("Y")+1); 参考 gmdate()...若有传入时间戳记,则将时间戳记格式化返回;若无传入时间戳记,则将目前服务器时间本地格式化返回。月份或者星期名称随着本地语系配置 setlocale() 不同而改变。

1.8K30

负载均衡环境中和如何设置ExpiresEtag

ETag 不同,在多台WEB前端做负载均衡情况下,会因为请求同一个数据但不同机器 ETag 而影响了响应....Last-Modified Expires 标记: 一般般纯静态页面本身都会有Last-Modified信息,这是由WEB服务器获取文件最后修改时间生成,而动态页面需要默认输出内容是 Date...16:58:37 GMT 这里 Last-Modified 时间请求文件时间相同,也就是说该文件总是声明为最新 在程序中需要输出Last-Modifed Expires信息,比如php...header(‘Last-Modified: ‘ . gmdate(“D, d M Y H:i:s”) . ‘ GMT’); header(‘Expires: ‘ . gmdate (“D, d...Expires分别 主要重点在于我们要明白一个相对(Expires)一个绝对(max-age).

88520

放弃 Calender优雅地使用Joda-Time吧Joda 大型项目Joda 简介Joda JDK 互操作性Joda 关键日期时间概念

当通过一个 API 方法操作 Joda 类时,您必须捕捉该方法返回,因为您正在处理实例不能被修改。...这一定义 JDK 相同,这就是为什么任何 Joda Instant 子类都可以 JDK Date Calendar 类兼容原因。...DateTimeZone 是 Joda 库用于封装位置概念类。许多日期时间计算都可以在不涉及时区情况下完成,但是仍然需要了解 DateTimeZone 如何影响 Joda 操作。...它根据 JDK Date 对象毫秒创建一个 DateTime 对象,其时间精度用毫秒表示,因为 epoch Joda 是相同: java.util.Date jdkDate = obtainDateSomehow...它基本上类似于 DateTime,不同之处在于时间部分总是为该对象关联特定 DateTimeZone 时区午夜时分。

1.4K70

Java时间处理神器之Joda-Time

当您通过一个 API 方法操作 Joda 类时,您必须捕捉该方法返回,因为您正在处理实例不能被修改。...这一定义 JDK 相同,这就是为什么任何 Joda Instant 子类都可以 JDK Date Calendar 类兼容原因。...DateTimeZone 是 Joda 库用于封装位置概念类。许多日期时间计算都可以在不涉及时区情况下完成,但是仍然需要了解 DateTimeZone 如何影响 Joda 操作。...它根据 JDK Date 对象毫秒创建一个 DateTime 对象,其时间精度用毫秒表示,因为 epoch Joda 是相同: java.util.Date jdkDate = obtainDateSomehow...它基本上类似于 DateTime,不同之处在于时间部分总是为该对象关联特定 DateTimeZone 时区午夜时分。

2.2K50

告别相差8小时问题,在 WordPress 正确使用 Date Time

使用 Date Time 是 WordPress 第三方开发者非常日常工作,我们知道 PHP 提供了非常多时间相关函数类,但是 WordPress 对时间处理,有自己一套逻辑。...下面讲解下在 WordPress 中使用 Date Time 经验坑: UTC 时区 在 PHP 中,我们可以使用 date 函数格式化一个时间戳,比如: echo date('Y-m-d H:...因为 WordPress 为了防止因为系统不同设置造成问题,先把默认时区设置为 UTC,也就是格林威治标准时间,北京时间正好差8个小时。...: Asia/Shanghai )还是 gmt_offset(比如:UTC+8)方式设置都可以。...wp_timezone() 也是获取当前站点时区,但是返回是 DateTimeZone 对象。

73630

PHP中日期相关函数(三)

获取及设置时区 关于时区内容学习,我们在 DateTimeZone学习中已经详细讲解过了,在面向过程方式中,我们也可以通过两个简单函数来获取设置当前系统运行环境时区信息。...() date_parse_from_format() 都是转换日期内容为详细数组函数,它们区别是 date_parse_from_format() 函数可以指定日期格式,这样传递进来日期内容就可以是各种格式类型...,先不管它准确度如何,这个函数以及 sun 相关这些函数都是比较有意思函数。...gettimeofday() 从名称就可以看出,它返回是当前日期时间戳信息,如果将它参数设置为 true ,那么它 time() 返回内容基本是类似的,不过需要注意是,它返回内容是包含微秒哦...,毕竟它返回数组中已经为我们准备好了 sec usec 这两个字段。

1.9K10

PHP String、Array、Object、Date 常用方法小结

date_sub() 从指定日期减去日、月、年、时、分秒。 date_sun_info() 返回包含有关指定日期地点日出/日落黄昏开始/黄昏结束信息数组。...date_sunrise() 返回指定日期位置日出时间。 date_sunset() 返回指定日期位置日落时间。 date_time_set() 设置时间。...getdate() 返回某个时间戳或者当前本地日期/时间日期/时间信息。 gettimeofday() 返回当前时间。 gmdate() 格式化 GMT/UTC 日期时间。...gmmktime() 返回 GMT 日期 UNIX 时间戳。 gmstrftime() 根据区域设置对 GMT/UTC 日期时间进行格式化。 idate() 将本地时间/日期格式化为整数。...timezone_offset_get() 返回相对于 GMT 时区偏移。 timezone_open() 创建新 DateTimeZone 对象。

18910

php中header几种用法

参数说明: Expires报头 设置网页过期时间,GMT格林威治时间格式 header('Expires:'.gmdate('D,d M Y H:i:s',time()+3600).'...s-maxage=[秒] max-age类似,但是应用于其他共享如:代理服务器 must-revalidate 告诉缓存必须遵循所有你给予副本新鲜度,HTTP允许缓存在某些特定情况下返回过期数据...,指定了这个属性,你高速缓存,你希望严格遵循你规则 must-revalidate 告诉缓存必须遵循所有你给予副本新鲜度,HTTP允许缓存在某些特定情况下返回过期数据,指定了这个属性,你高速缓存...报头回送给服务器以检查访问网页是否有更新 header('Last-Modified:'.gmdate('D,d M Y H:i:s',filemtime(文件名).'...GMT');

53831
领券