Carbon:根据输入的日期字符串和时区返回时间戳


Carbon: return a timestamp based on input date string AND timezone

以来自欧洲/巴黎(+02:00)的人为例。

我想建立一个函数,在这里我传递一个日期和时间字符串('2016-10-6 06:00 PM')和我的时区标识符('Europe/Paris')。我想返回相应的GMT时间戳。

getTimestamp('2016-10-6 06:00 PM', 'Europe/Paris')

到目前为止我写的是:

public function getTimestamp($string, $time_zone)
{
    $c = Carbon::parse($string);
    $c->timezone = new DateTimeZone($time_zone);
    return $c->timestamp;
}

如果传递日期和时间为2016-10-06 06:00 PM,时区为Europe/Paris,则返回的UTC时间戳对应于2016-10-06 06:00 PM GMT。

它应该返回格林尼治时间04:00,因为欧洲/巴黎比它早两个小时。

如何传递日期和时区并返回具有正确偏移量的GMT时间戳

解析函数允许您传入时区

public static function parse($time = null, $tz = null)

所以直接传入:

$c = Carbon::parse($string, $time_zone);