format_date()
を使用したいのですが、Unixタイムスタンプが必要で、日付はISOです。
ISO日付をUnixタイムスタンプに変換するdrupal方法はありますか?strtotimeを使用すると、タイムゾーンオフセットが失われます。
format_date()
はもう使用しないでください。 DrupalDateTime
オブジェクトを作成してから、format()
メソッドを使用する必要があります。
$date = \Drupal\Core\Datetime\DrupalDateTime::createFromFormat('c', $my_iso_8601_date);
$my_rfc2822_string = $date->format('r');
format_date
Drupal 8.0.0で廃止予定、Drupal 9.0.0。の前に削除されます。
Drupal方法で、Drupalタイムサービスを使用して、
$time_value = \Drupal::time()->getCurrentTime();
print \Drupal::service('date.formatter')->format($time_value, 'long');
うまく動かない。これは私が渡しているものです:2016-06-07T14:00:00、そして私はこれを代わりに取得したいと思います(タイムゾーン変換を通過する場合を除く):1465308000
簡単です。DrupalDateTimeオブジェクト内で標準のgetTimestamp()関数を使用できます。
$date = '2016-06-07T14:00:00';
$dateTime = new DrupalDateTime($date, 'UTC');
$timestamp = $dateTime->getTimestamp();
これは私が最終的に使用したものです。 MPDのソリューションをさらに実験したいと思います。そうした場合は、この質問を更新します。
$start_date = new DateTime($my_IOS_date, new DateTimeZone('UTC'));
$start_date->setTimezone(new DateTimeZone('America/New_York'));
$my_timestamp = $start_date->getTimestamp();