aboutsummaryrefslogtreecommitdiff
path: root/app/class/Item.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/class/Item.php')
-rw-r--r--app/class/Item.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/class/Item.php b/app/class/Item.php
index 526e630..8bd62d1 100644
--- a/app/class/Item.php
+++ b/app/class/Item.php
@@ -2,6 +2,10 @@
namespace Wcms;
+use DateTime;
+use DateTimeImmutable;
+use DateTimeZone;
+
abstract class Item
{
@@ -42,6 +46,37 @@ abstract class Item
$array[$var] = $this->$var;
}
return $array;
+ }
+
+
+ /**
+ * Tool for accessing different view of the same DateTimeImmutable var
+ *
+ * @param string $property DateTimeImmutable var to access
+ * @param string $option
+ *
+ * @return mixed string or false if propriety does not exist
+ */
+ protected function datetransform(string $property, string $option = 'date')
+ {
+ if(property_exists($this, $property)) {
+ if ($option == 'string') {
+ return $this->$property->format(DateTime::ISO8601);
+ } elseif ($option == 'date' || $option == 'sort') {
+ return $this->$property;
+ } elseif ($option == 'hrdi') {
+ $now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
+ return hrdi($this->$property->diff($now));
+ } elseif ($option == 'pdate') {
+ return $this->$property->format('Y-m-d');
+ } elseif ($option == 'ptime') {
+ return $this->$property->format('H:i');
+ } elseif ($option = 'dmy') {
+ return $this->$property->format('d/m/Y');
+ }
+ } else {
+ return false;
+ }
}
}