php - PHP DateTime 与时区的小时差给出 0 而不是 2
问题描述
我正在尝试建立一个时区列表,其中包含 php 时区代码和 UTC 之间的时差。
我尝试了几行带有差异的代码:
$utc_date = new DateTime(
NULL,
new DateTimeZone('UTC')
);
echo 'UTC: ' . $utc_date->format('Y-m-d g:i A') . "<br>";
$cairo_date = new DateTime(
NULL,
new DateTimeZone('Africa/Cairo')
);
echo 'Cairo: ' . $cairo_date->format('Y-m-d g:i A') . "<br>";
$diff = $utc_date->diff($cairo_date);
echo "Differences: " . $diff->h;
它输出:
UTC: 2020-05-17 9:14 PM
Cairo: 2020-05-17 11:14 PM
Differences: 0
我找不到为什么 diff 不返回正确的差异?
解决方案
只有在不同的时区,它已经是相同的时间了。DateTime 构造函数中的第一个参数为空,表示当前时间。
尝试:
//add
$utc_date->modify('+1 hour');
新的输出将是:
UTC: 2020-05-17 11:01 PM
Cairo: 2020-05-18 12:01 AM
Differences: 1
推荐阅读
- gradle - Gradle多项目buildSrc在子项目中不起作用
- count - Excluding Values
- python - 使用 conda 安装 plotly 时遇到问题
- reactjs - 有没有办法在 firestore collection() 和 doc() 中使用 React 状态?
- xgboost - H2O XGBoost 因本地服务器死机或挂起而崩溃(?)
- c# - URL重写是用两个段重写我的所有文件
- google-chrome-extension - 如何在 Chrome 扩展中使用 API 从 Google 表格中读取数据?
- java - java.time.LocalDate 范围内的生日
- python - 如何获取存储在变量中的对象 ID 的值 - 在 python 中
- bash - 在shellscript中,如何将+1添加到字符串中的特定数字