<?php

class UOJTime {
	public static ?DateTime $time_now = null;
	public static string $time_now_str = '';
    
	const FORMAT = 'Y-m-d H:i:s';
	const MAX_TIME = '9999-12-31 23:59:59';
	
	public static function init() {
		self::$time_now = new DateTime();
		self::$time_now_str = self::$time_now->format(static::FORMAT);
	}
    
    public static function str2time($input) {
    	if (!is_string($input)) {
    		return null;
    	}
    	try {
    		$time = new DateTime($input);
    		if ($time->format(static::FORMAT) !== $input) {
    			return null;
    		}
    		return $time;
    	} catch (Exception $e) {
    		return null;
    	}
    }

    public static function time2str(DateTime $time) {
    	return $time->format(static::FORMAT);
    }
}