public static function now(string $type = 'datetime', array $options = []) {
		// todo: convert to proper timezone, important!!!
		list($msec, $time) = explode(" ", microtime());
		if (!empty($options['add_seconds'])) {
			$time+= $options['add_seconds'];
		}
		// if we need to format
		if (!empty($options['format'])) {
			return self::{$type}($time + $msec, $options);
		}
		// rendering
		switch ($type) {
			case 'unix':
				return $time;
				break;
			case 'timestamp':
				return date('Y-m-d H:i:s', $time) . '.' . str_pad(round($msec * 1000000, 0), 6, '0', STR_PAD_LEFT);
				break;
			case 'time':
				return date('H:i:s', $time);
				break;
			case 'date':
				return date('Y-m-d', $time);
				break;
			case 'datetime':
			default:
				return date('Y-m-d H:i:s', $time);
		}
	}
public static function now(string $type = 'datetime', array $options = []) {
		// todo: convert to proper timezone, important!!!
		list($msec, $time) = explode(" ", microtime());
		if (!empty($options['add_seconds'])) {
			$time+= $options['add_seconds'];
		}
		// if we need to format
		if (!empty($options['format'])) {
			return self::{$type}($time + $msec, $options);
		}
		// rendering
		switch ($type) {
			case 'unix':
				return $time;
				break;
			case 'timestamp':
				return date('Y-m-d H:i:s', $time) . '.' . str_pad(round($msec * 1000000, 0), 6, '0', STR_PAD_LEFT);
				break;
			case 'time':
				return date('H:i:s', $time);
				break;
			case 'date':
				return date('Y-m-d', $time);
				break;
			case 'datetime':
			default:
				return date('Y-m-d H:i:s', $time);
		}
	}
public static function now ( string $ type = 'datetime' , array $ options = [ ] ) { // todo: convert to proper timezone, important!!! list ( $ msec , $ time ) = explode ( " " , microtime ( ) ) ; if ( ! empty ( $ options [ 'add_seconds' ] ) ) { $ time += $ options [ 'add_seconds' ] ; } // if we need to format if ( ! empty ( $ options [ 'format' ] ) ) { return self :: { $ type } ( $ time + $ msec , $ options ) ; } // rendering switch ( $ type ) { case 'unix' : return $ time ; break ; case 'timestamp' : return date ( 'Y-m-d H:i:s' , $ time ) . '.' . str_pad ( round ( $ msec * 1000000 , 0 ) , 6 , '0' , STR_PAD_LEFT ) ; break ; case 'time' : return date ( 'H:i:s' , $ time ) ; break ; case 'date' : return date ( 'Y-m-d' , $ time ) ; break ; case 'datetime' : default : return date ( 'Y-m-d H:i:s' , $ time ) ; } }
Current date and time

@param string $type
@param array $options
@return mixed
Current date and time