/** * Helper function to create a HabariDateTime object for the given * time and timezone. If no time is given, defaults to 'now'. If no * timezone given defaults to timezone set in {@link set_default_timezone()} * * @static * @see DateTime::__construct() * @param string $time String in a format accepted by * {@link http://ca.php.net/strtotime strtotime()}, defaults to "now". * @param string $timezone A timezone name, not an abbreviation. */ public static function date_create( $time = null, $timezone = null ) { if ( $time instanceOf HabariDateTime ) { return $time; } elseif ( $time instanceOf DateTime ) { $time = $time->format( 'U' ); } elseif ( $time === null ) { $time = 'now'; } elseif ( is_numeric( $time ) ) { $time = '@' . $time; } if ( $timezone === null ) { $timezone = self::$default_timezone; } // passing the timezone to construct doesn't seem to do anything. $datetime = new HabariDateTime( $time ); $datetime->set_timezone( $timezone ); return $datetime; }