首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么DateTimeZone的getOffset()需要一个参数?

为什么DateTimeZone的getOffset()需要一个参数?
EN

Stack Overflow用户
提问于 2019-02-09 20:30:47
回答 1查看 81关注 0票数 2

PHP的datetime DateTimeZone::getOffset's (timezone_offset_get) 参数有什么意义?

代码语言:javascript
运行
复制
<?php

$tz = new DateTimeZone("Asia/Tokyo");

var_dump($tz->getOffset(new DateTime())); // 32400
var_dump($tz->getOffset(new DateTime('now', new DateTimeZone('Asia/Taipei')))); // 32400
var_dump($tz->getOffset(new DateTime('now', new DateTimeZone('Europe/Budapest')))); // 32400
var_dump($tz->getOffset(new DateTime('2000-01-01', new DateTimeZone('America/New_York')))); // 32400

我是遗漏了什么,还是参数根本不影响函数的输出?

文档提到函数计算参数的偏移量。这是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-09 20:32:30

因为偏移量取决于日期。

例如,在夏季,Europe/Budapest的偏移量为2小时(因为夏令时),冬季为1小时:

代码语言:javascript
运行
复制
$tz = new DateTimeZone("Europe/Budapest");

var_dump($tz->getOffset(new DateTime('2018-06-06', $tz))); // 7200
var_dump($tz->getOffset(new DateTime('2018-01-06', $tz))); // 3600

夏令时并不是唯一的变化来源,参见莫斯科时间

代码语言:javascript
运行
复制
$tz = new DateTimeZone("Europe/Moscow");

var_dump($tz->getOffset(new DateTime('2010-01-01', $tz))); // 10800
var_dump($tz->getOffset(new DateTime('2012-01-01', $tz))); // 14400
var_dump($tz->getOffset(new DateTime('2015-01-01', $tz))); // 10800
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54610442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档