diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-09-11 09:45:43 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-09-11 09:45:43 +0200 |
commit | 7bd9dcdcda53ce93e03d24bf7218e1cf61772894 (patch) | |
tree | 4b46e0a0c73b862677a6a3568b74638fa2f7a993 /program/lib/Roundcube/rcube_utils.php | |
parent | 66a549e1331fb85a04d34294b1197e6848a76954 (diff) | |
parent | 52830ea6056dc85d8ffcb0cfb7ead7d70624e109 (diff) |
Merge branch 'master' of github.com:roundcube/roundcubemail
Diffstat (limited to 'program/lib/Roundcube/rcube_utils.php')
-rw-r--r-- | program/lib/Roundcube/rcube_utils.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php index 2540f779d..1d76ae508 100644 --- a/program/lib/Roundcube/rcube_utils.php +++ b/program/lib/Roundcube/rcube_utils.php @@ -787,6 +787,44 @@ class rcube_utils return (int) $ts; } + /** + * Date parsing function that turns the given value into a DateTime object + * + * @param string $date Date string + * + * @return object DateTime instance or false on failure + */ + public static function anytodatetime($date) + { + if (is_object($date) && is_a($date, 'DateTime')) { + return $date; + } + + $dt = false; + $date = trim($date); + + // try to parse string with DateTime first + if (!empty($date)) { + try { + $dt = new DateTime($date); + } + catch (Exception $e) { + // ignore + } + } + + // try our advanced strtotime() method + if (!$dt && ($timestamp = self::strtotime($date))) { + try { + $dt = new DateTime("@".$timestamp); + } + catch (Exception $e) { + // ignore + } + } + + return $dt; + } /* * Idn_to_ascii wrapper. |