我在内容类型中有一个日期时间范围字段(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
)公共成员。