PHP DateTime 时区 - 构造函数与 Setter 方法

2023-11-30

使用 PHP 时DateTime类并尝试设置一个DateTimeZone根据我的设置方式,我得到不同的结果:使用DateTime::__construct或使用DateTime::setTimezone method.

这是一个例子:

$date = '2014-08-01'

$dateTimeOne = new DateTime($date, new DateTimeZone('America/Los_Angeles'));
echo $dateTimeOne->format('Y-m-d\TH:i:sP'); 
// 2014-08-01T00:00:00-07:00

$dateTimeTwo = new DateTime($date);
$dateTimeTwo->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $dateTimeTwo->format('Y-m-d\TH:i:sP'); 
// 2014-07-31T17:00:00-07:00

也可以看看http://3v4l.org/LrZfM

我环顾四周,除了以下评论之外,没有找到解决这些特定行为的充分解释php 文档:datetime.settimezone和书php|架构师的日期和时间编程指南:处理时区 - DateTimeZone.

评论指出,DateTime::setTimezone方法将更改特定时间点(时间戳)的时区,但 Unix 时间戳保持不变。

另一方面DateTime::__constructDateTimeZone 参数用于“用用户定义的时区覆盖当前默认时区”第 3 章:处理时区 - DateTimeZone.

除此之外,关于这个主题的内容不多(我能找到)。

这就是我想知道的:

  • 对这两种设置时区的方法的进一步解释
  • 我什么时候应该使用DateTime::__construct设置时区
  • 我什么时候应该使用DateTime::setTimezone设置时区
  • 使用其中一种或另一种或如何结合使用它们的清晰示例

这是正常行为。

当您未在构造函数中指定时区时,将使用默认时区,即使用 date_default_timezone_set() 设置的时区。

当您随后致电时:

$dateTimeTwo->setTimezone(new DateTimeZone('America/Los_Angeles'));

它将默认时区中设置的日期移至新时区。


1) (构造函数) 在“America/Los_Angeles”中设置日期
2) (setter) 在默认时区设置日期,将日期移动到“America/Los_Angeles”


您的默认时区可能是 UTC 或接近的时区。您告诉计算机将 2014 年 8 月 1 日设置为 UTC。然后,您要求切换到 7 小时前的“America/Los_Angeles”时区,因此将日期更改为 2014 年 7 月 31 日的 17:00。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP DateTime 时区 - 构造函数与 Setter 方法 的相关文章

  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 如何在Oracle中使用Timestamp_to_scn和Scn_to_timestamp?

    我的查询结果是这样的 select cast to date a start time mm dd yyyy hh mi ss pm as timestamp date of call ora rowscn from calling tab
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • 给定日期时间列的熊猫按周分组

    假设我有以下数据样本 df pd DataFrame date 2011 01 01 2011 01 02 2011 01 03 2011 01 04 2011 01 05 2011 01 06 2011 01 07 2011 01 08
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • Sonata DateTimePickerType 类默认日期显示错误的日期时间格式

    我陷入困境 我不知道如何使用 sonata DateTimePickerType 类正确设置默认日期和时间 我尝试了不同的方法 但到目前为止 没有一种方法没有帮助 在下面的截图中 help 键显示正确的日期和时间 但是当我使用 dp 默认日
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 在 PostgreSQL 中使用月份名称排序

    我有一个表 其中有一个字段 Month Name 它包含月份的名称 我想按月份名称排序 不是按字母顺序 而是按实际顺序 例如一月 二月等 如何使用 PostgreSQL 实现此操作 有什么方法可以将月份名称转换为其数值吗 id billed
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • 空意图选择器(没有应用程序可以执行此操作)

    我的意图选择器基于白名单 只有部分应用程序会显示在意图选择器中 该代码基于另一个相反的代码 将应用程序列入黑名单 我从那里得到了该代码here and this是与之相关的相关讨论 如何创建选择器的上下文 String whitelist
  • Jenkins 中的 Android 模拟器

    我尝试在 Jenkins 中使用 Android 模拟器 我遵循这个指南 詹金斯插件 我在无头构建机器 CentOS 上完成此操作 我尝试从詹金斯创建模拟器 就像示例一样 当我尝试像这个例子一样做 但是在我的版本中 我从詹金斯那里得到了这个
  • 如何仅使用子目录的名称来查找特定深层子目录的路径?

    我想将文件移动到子目录中 该子目录位于多个子目录内 我只有父目录的名称和我想要文件进入的子目录的名称 我不知道父目录和目标子目录之间的子目录 并且需要找到该子目录及其绝对路径的位置 以便我可以将文件移动到该子目录中 我尝试过 os path
  • Mod_将查询字符串重写到 swf 文件中

    我正在尝试使用 mod rewrite 来清理 Flash 视频播放器的 URL 首先 这是我尝试重写的原始 URL library player swf path path to file flv 当我直接访问上面的 URL 时 它工作得
  • 使用图形 API 以编程方式在 azure Active Directory 中注册应用程序

    我正在尝试使用图形 API 在 Azure AD 中注册应用程序 我有一个方法CallRestAPI这将提出请求 下面是代码 public async Task
  • 以编程方式将数据发布到 Web 表单时出现乱码 httpWebResponse 字符串

    我尝试搜索之前有关此问题的讨论 但没有找到 也许是因为我没有使用正确的关键字 我正在编写一个小程序 将数据发布到网页并获取响应 我发布数据的网站不提供 API 经过一番谷歌搜索后 我想到了 HttpWebRequest 和 HttpWebR
  • 是否可以在 Spring 4 MVC 中嵌套控制器/将控制器作为内部类?

    我想要一个映射到的控制器 site 在这两个不同的控制器中看起来像 Controller RequestMapping value api public class ApiController Controller RequestMappi
  • MicrosoftWebDriver 加载 Web 驱动程序 null

    我在本地计算机 Windows 10 Enterprise 64 位 Microsoft Edge 版本 25 10586 672 0 和 Microsoft WebDriver Release 10240 上运行 selenium 时出现
  • Emacs:停止 gpg 密码的弹出窗口 [关闭]

    Closed 这个问题是无关 目前不接受答案 每当我打开加密文件 somefile gpg authinfo gpg 时 emacs 都会烦人地弹出窗口并要求输入密码 我希望它在迷你缓冲区中询问我密码 是否有任何配置选项 编辑 需要注意的是
  • 为 TRichEditViewer 导入外部 RTF 文件?

    我在用着TRichEditViewer在 Inno Setup 脚本的自定义页面上 是否可以将外部 RTF 文件读入变量 并使用该变量作为查看器的内容 或者我必须在脚本中保留实际的 RTF 代码吗 非常感谢任何帮助 你应该能够使用LoadS
  • python正则表达式重复组匹配[重复]

    这个问题在这里已经有答案了 可能的重复 Python 正则表达式 如何从通配符表达式中捕获多个组 我无法访问以下正则表达式中第三个或第五个元素的组 gt gt gt x f 167 2958 335 3103 0 gt gt gt re s
  • java阅读器与流

    我正在阅读有关 Java I O 的内容 发现了一些有趣的领域 例如流 读取器等 InputStream input new FileInputStream input file txt int data input read while
  • 如何检查我的机器上是否安装了 IPython 以及安装这些库的顺序是什么?

    我需要使用 python 进行机器学习课程 并且还需要安装一些外部库 我对安装所有东西的正确顺序有点困惑 因为我听说如果做得不正确 路径可能会变得混乱 这是我需要的 Python 版本 2 7 IPython enthought 这个包中可
  • Scala 占位符语法

    有件事不太明白希望有人能解释一下 我有 Seq 字符串 val strDeps Seq String 我尝试使用 sortWith 方法对其进行相反的排序 但出现以下错误 scala gt print strDeps sortWith re
  • 如何重用android警报对话框

    我想重用alertDialog的代码并将其作为函数调用放在另一个java文件中 但是 this 不能用来替换 MyActivity this 吗 如何将其作为参数传递 如果代码是通用的 那就最好了 AlertDialog alertDial
  • 使用 Pandas DataFrame 中其他两列的键和值创建字典列

    我目前有一个 Pandas DataFrame 其中有两列 每列都包含列表 另一列包含这两个列表的元素的元组对 为了方便起见 一个玩具示例如下 col1 col2 col3 col4 0 a 0 1 8 9 0 8 1 9 1 b 2 3
  • CurrentThread/ProcessThread 对象

    在 NET BCL中 有一个CurrentThread和一个ProcessThread对象 这些有什么区别呢 Thanks 这是设计 NET 2 0 时 SQL Server 项目的遗留问题 他们向 CLR 团队施压really很难打破 N
  • Android - 将资产复制到内部存储

    再会 我刚刚开始开发android 在我的应用程序中 我需要将资产文件夹中的项目复制到内部存储中 我在 SO 上搜索了很多 包括将其复制到外部存储的方法 如何将文件从 assets 文件夹复制到SD卡 这就是我想要实现的目标 我的内部存储中
  • 火星日食模糊

    使用 Eclipse Luna 几年后 我决定迁移到火星 我注意到当我用水平卷轴向右移动时它变得模糊 我正在笔记本电脑 Compaq 6710b 上使用 Ubuntu 14 04 有人可以帮我解决这个问题吗 这可能是由于月球上的 GTK 2
  • PHP DateTime 时区 - 构造函数与 Setter 方法

    使用 PHP 时DateTime类并尝试设置一个DateTimeZone根据我的设置方式 我得到不同的结果 使用DateTime construct或使用DateTime setTimezone method 这是一个例子 date 201