From 35ad6eb5f40f9e3f7323806b8e3978a37eecc62b Mon Sep 17 00:00:00 2001
From: Eric Bremner <ebremner@uwaterloo.ca>
Date: Mon, 15 Aug 2022 16:18:05 -0400
Subject: [PATCH] ISTWCMS-5736: fixing dates with time

---
 src/Service/UwNodeFieldValue.php | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/Service/UwNodeFieldValue.php b/src/Service/UwNodeFieldValue.php
index c50515cb..21c749c1 100644
--- a/src/Service/UwNodeFieldValue.php
+++ b/src/Service/UwNodeFieldValue.php
@@ -694,6 +694,11 @@ class UwNodeFieldValue {
 
     $return_dates = [];
 
+    // If there is no dates to process, return empty array.
+    if (!$node->$field_name->value) {
+      return $return_dates;
+    }
+
     // If this is not and event, just get the date.
     if ($node->getType() !== 'uw_ct_event') {
       $return_dates[] = $this->getDate([$node->$field_name->value], 'blog');
@@ -904,7 +909,15 @@ class UwNodeFieldValue {
       $return_date['end_date'] = $date['end_value'];
     }
     else {
-      $return_date['date'] = $date[0];
+
+      // If the date contains a time code, we need to convert
+      // it, because it is stored in UTC.
+      if (strpos($date[0], 'T')) {
+        $return_date['date'] = date('c', strtotime($date[0] . ' UTC'));
+      }
+      else {
+        $return_date['date'] = $date[0];
+      }
     }
 
     return $return_date;
-- 
GitLab