我正在使用SparkPost API,我无法理解如何在PHP中使用YYYY-MM-DDTHH:MM:SS+-HH:MM创建日期。
什么是+-HH:MM,这是时区吗?
我从回顾其他类似的堆栈交换主题中获得的最接近的结果是:
if ( !$send_now && self::$row->datetime )
{
// This data is available: [send_datetime] => 04/01/2016 01:30
// This data is available: [timezone] => MDT-UTC-7
$send_at = date( 'Y-m-dTH:i:s' , strtotime( self::$row->datetime ) );
}
else
{
$send_at = 'now';
}
另一个仅供参考的是,我正在使用WordPress,并且希望针对实例设置的时区。
任何帮助表示赞赏。
更新了有效的代码
if ( !$send_now && self::$row->datetime ) {
$send_at = date( 'c' , strtotime( self::$row->datetime ) );
if (isset(self::$email_settings['timezone'])) {
$date_parts = explode('+' , $send_at );
$timezone_parts = explode('UTC' , self::$email_settings['timezone'] );
$send_at = $date_parts[0] .$timezone_parts[1].':00';
}
} else {
$send_at = 'now';
}
这是 ISO 8601 日期格式。请参阅 https://en.wikipedia.org/wiki/ISO_8601。
+-HH:MM 是 UTC 的时区偏移量。
在PHP中,您可以使用"c"将日期格式化为ISO 8601。
$send_at = date( 'c', strtotime( self::$row->datetime ) );
这是您正在寻找的格式
$send_at = date( 'c' , strtotime( self::$row->datetime ) );
它被称为ISO 8601 date
UTC 位置的输出2016-04-22T22:48:10+00:00
是的,+-HH:MM 是与 UTC 的时区差异,+
或-