2016-04-07 11 views
0

フロントエンドで使用するために、指定された時間帯で指定された時間の実際のタイムスタンプを取得したいと思います。Carbon timezone get timestamp

現在、私はタイムゾーンを設定し、その時間を得ることができます。しかし、私は新しいタイムスタンプを取得することはできません。

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 

説明どのようにタイムゾーンのタイムスタンプを取得できるかを説明します。 ありがとう!

答えて

0

setTimezoneを使用するには、createFromFormat関数を使用する必要があります。あなたのコードの例は次のとおりです。

$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"); 

希望します。

+0

これは機能しませんでした。結果のタイムスタンプは同じです。 – Alex

0

私はその完全な解決策ではないことを知っています。しかし、それは私の要件のために働く。 現在、オーバーライドする必要があります__toString Carbonクラスのメソッドです。これは日付のタイムスタンプを表示するために使用します。

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