From a5a19fd672bc0b8113d620669b557f17dccd343a Mon Sep 17 00:00:00 2001
From: Christian Schneider
Date: Thu, 26 Oct 2006 13:35:12 +0000
Subject: Moved itools to live branch
---
time.pinc | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 139 insertions(+)
create mode 100644 time.pinc
(limited to 'time.pinc')
diff --git a/time.pinc b/time.pinc
new file mode 100644
index 0000000..aa5421b
--- /dev/null
+++ b/time.pinc
@@ -0,0 +1,139 @@
+ " . $dfields[0] . "-" . $dfields[1] . "-" . $dfields[2] . " " . $tfields[0] . ":" . $tfields[1] . ":" . $tfields[2] . " ($unixtime sec)
\n"; */
+ return $unixtime / 86400;
+}
+
+
+/**
+ * Calculate the number of seconds since January 1, 1970 for a given ISO date
+ * WARNING: Works only for years less than about 2038
+ * @see mysqldatetoseconds, it_date_mysqltimestamptounix
+ * @param $datetime Date/time in ISO (aka mysql) format: YYYY-MM-DD HH:MM:SS
+ * @return The supplied date as number of seconds since the start of the epoch
+ */
+function mysqldatetoseconds($datetime)
+{
+ $dt = split(' ', $datetime);
+ $dfields = split("-", $dt[0]);
+ $tfields = split(":", $dt[1]);
+ $unixtime = intval(mktime($tfields[0], $tfields[1], $tfields[2], $dfields[1], $dfields[2], $dfields[0]));
+ /* echo "$datetime --> " . $dfields[0] . "-" . $dfields[1] . "-" . $dfields[2] . " " . $tfields[0] . ":" . $tfields[1] . ":" . $tfields[2] . " ($unixtime)
\n"; */
+ return $unixtime;
+}
+
+
+/**
+ * Calculate the number of seconds since January 1, 1970 for a given mysql timestamp
+ * (which is in format YYYYMMDDhhmmss). Ignores all non-numerical characters, so this
+ * function can be used as a substitute for mysqldatetoseconds().
+ * WARNING: Works only for years less than about 2038
+ * @see mysqldatetoseconds, it_date_unixtomysqltimestamp
+ * @param $ts Date/time in ISO (aka mysql) format: YYYYMMDDhhmmss
+ * @return The supplied date as number of seconds since the start of the epoch
+ */
+function it_date_mysqltimestamptounix($ts)
+{
+ $ts = ereg_replace('[^0-9]+', '', $ts);
+ return intval(mktime(substr($ts, 8, 2), substr($ts, 10, 2), substr($ts, 12, 2), substr($ts, 4, 2), substr($ts, 6, 2), substr($ts, 0, 4)));
+}
+
+
+/**
+ * Convert the given UNIX timestamp to a mysql timestamp in format YYYYMMDDhhmmss.
+ * WARNING: Works only for years less than about 2038
+ * @see mysqldatetoseconds, it_date_mysqltimestamptounix
+ * @param $ts Date/time in UNIX format (number of seconds since January 1, 1970)
+ * @return The supplied date as YYYYMMDDhhmmss
+ */
+function it_date_unixtomysqltimestamp($ts)
+{
+ return strftime('%Y%m%d%H%M%S', $ts);
+}
+
+
+/**
+ * Return the supplied date/time in human-readable Swiss format
+ * WARNING: Works only for years less than about 2038
+ * @see swisstimestamp, mysqldatetoseconds
+ * @param $datetime Date/time in ISO (aka mysql) format: YYYY-MM-DD HH:MM:SS
+ * @return The supplied date/time formatted as "14.08.1966 06:15"
+ */
+function swissdate($datetime)
+{
+ return strftime("%d.%m.%Y %H:%M", mysqldatetoseconds($datetime));
+}
+
+
+/**
+ * Return the supplied UNIX timestamp in human-readable Swiss format
+ * WARNING: Works only for years less than about 2038
+ * @see swissdate, mysqldatetoseconds
+ * @param $datetime Optional date/time in seconds from the beginning of the epoch (default is now)
+ * @return The supplied date/time formatted as "14.08.1966 06:15"
+ */
+function swisstimestamp($datetime = null)
+{
+ return strftime('%d.%m.%Y %H:%M', isset($datetime) ? $datetime : time());
+}
+
+?>
--
cgit v1.2.3