碳时区得到时间戳

时间:2016-04-07 07:42:42

标签: php timezone timestamp php-carbon

我希望在指定时区获得给定时间的实时时间戳,以便在前端使用。

目前我可以设置时区,并获得时间。但我无法获得新的时间戳。

Carbon::setToStringFormat('U'); // Set __toString format
$instance = Carbon::createFromTimestamp('1460014482', "Europe/Kiev"); // Set global server timezone (or pickup from default PHP setting)
$instance->setTimezone("Indian/Maldives"); // Set user timezone

var_dump($instance->format('d M Y H:i:s')); // Shows the correct time +2 hours from Europe/Kiev

var_dump((string)$instance); // Shows the same timestamp specified in createFromTimestamp

var_dump(date('d M Y H:i:s', (string)$instance)) // So it won't show the timezone datetime

解释我如何获得给定时区的时间戳。 谢谢!

2 个答案:

答案 0 :(得分:0)

您需要使用createFromFormat函数来使用setTimezone。以下是您的代码示例:

$originalDate = date("Y-m-d H:i:s", '1460014482');
$instance = Carbon::createFromFormat('Y-m-d H:i:s', $originalDate, 'Europe/Kiev');
$instance->setTimezone("Indian/Maldives");

希望它有所帮助。

答案 1 :(得分:0)

我知道它不是一个完整的解决方案。但它符合我的要求。 目前需要覆盖Carbon类的 __ toString 方法,我用它来显示日期时间戳。

public function __toString()
{
    return static::$toStringFormat == 'U' ? (string)strtotime($this->format('Y-m-d H:i:s')) : $this->format(static::$toStringFormat);
}