碳时区获取时间戳



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

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

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

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

您需要使用函数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");

希望能有所帮助。

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

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

相关内容

  • 没有找到相关文章

最新更新