php - 如何使用 PHP 将日期转换为 UTC 午夜

标签 php

我试图将日期传递给 hubspot。但它显示以下错误消息 [消息] => 1462127400 是 22:8:47.400 UTC,不是午夜!

如何使用 PHP 将日期转换为 UTC 午夜格式

最佳答案

获取 UTC 当前日期(午夜)的快捷方式:

echo date_create( date('Y-m-d'), timezone_open( 'UTC' ) )->getTimestamp();

将输出(现在是 2016-04-02 10:22 UTC):

1459555200

检查:

$date = date_create( date('Y-m-d'), timezone_open( 'UTC' ) );
echo $date->format('Y-m-d H:i:s') . PHP_EOL;
echo $date->getTimestamp() . PHP_EOL;

输出:

2016-04-02 00:00:00
1459555200

根据给定的日期字符串(即默认时区 TOT)获取 UTC 日的开始:

$dateString = '2016-03-15 23:05:00';

$date = new DateTime( $dateString );
#       └──────────┴┈┈┈┈> is the same as date_create()
$date->setTimezone( timezone_open( 'UTC' ) );
$date->modify( 'midnight' );
echo $date->format('Y-m-d H:i:s') . PHP_EOL;
echo $date->getTimestamp() . PHP_EOL;

输出:

2016-03-15 00:00:00
1458000000

单行方式:

echo date_create($dateString)->setTimezone(timezone_open('UTC'))->modify('midnight')->getTimestamp();

根据给定的时间戳

获取UTC日的开始:
$timeStamp  = 1458036300;

$date = new DateTime( "@$timeStamp" );
#                      ↑ use @ to create a DateTime from timestamp
$date->modify( 'midnight' );
echo $date->format('Y-m-d H:i:s') . PHP_EOL;
echo $date->getTimestamp() . PHP_EOL;

输出:

2016-03-15 00:00:00
1458000000

单行方式:

echo date_create("@$timeStamp")->modify('midnight')->getTimestamp();

请注意,对于 UNIX 时间戳,我们不需要设置时区,因为 UNIX 时间戳是基于 UTC 的。

关于php - 如何使用 PHP 将日期转换为 UTC 午夜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371687/

相关文章:

javascript - 哪种方式加载 JSON 到 AngularJS 更好?

php mySQL插入问题

php - 'list' php mysql 多选中的未知列 'field list'

php - 更新mysql中的表

javascript - Jquery 将按钮值中的字符串添加到输入字段中

php - 去掉twitter之间的空格

php - 如何在codeigniter中上传图片,错误号: 1136

javascript - 页面刷新后保留下拉列表的选定值

php - 如何在 php 中为网上商店制作订单历史记录?

php - 自定义 OpenCV 安装问题 [LINUX]