콘텐츠 유형에 날짜 시간 범위 필드 (field_date)가 있습니다. 콘텐츠 유형을 만든 후 시작 날짜를 다음과 같이 설정했습니다.
2017-02-27 19:30:01
이제 값을 가져 와서 다른 형식으로 날짜를 표시하려고하므로 다음 코드를 사용하십시오.
// Loading the node.
$node = Node::load(2100);
// Getting the start date value.
$date = $node->field_date->value;
// Printing to see what is the output.
dpm($node->field_date->value);
$date = strtotime($date);
// Printing my timezone.
dpm(drupal_get_user_timezone());
// Applying my custom format.
$date = \Drupal::service('date.formatter')->format($date, 'custom', 'Y-m-d H:i:s', drupal_get_user_timezone());
// Printing to see the output.
dpm($date);
이것은 내 출력입니다.
// It's fine.
2017-02-28T00:30:01
// Its fine.
America/New_York
// This is not what I waiting for. I'm waiting here: 2017-02-27 19:30:01
2017-02-28 00:30:01
그렇다면 올바른 시간대로 날짜를 표시하는 방법은 무엇입니까?
date
DrupalDateTime에 액세스 할 수있는 기능입니다. 호기심에서 어떻게 알아 냈습니까? 나는 내 필드가 유형DateTimeItem
이라는 것을 알 수 있었지만 거기에는 그 클래스에 대한date
(또는value
) 공개 멤버가 있는지 분명하지 않습니다 .