167 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
// addnews ready
 | 
						|
// translator ready
 | 
						|
// mail ready
 | 
						|
function reltime($date,$short=true){
 | 
						|
	$now = strtotime("now");
 | 
						|
	$x = abs($now - $date);
 | 
						|
	$d = (int)($x/86400);
 | 
						|
	$x = $x % 86400;
 | 
						|
	$h = (int)($x/3600);
 | 
						|
	$x = $x % 3600;
 | 
						|
	$m = (int)($x/60);
 | 
						|
	$x = $x % 60;
 | 
						|
	$s = (int)($x);
 | 
						|
	if ($short){
 | 
						|
		$array=array("d"=>"d","h"=>"h","m"=>"m","s"=>"s");
 | 
						|
		$array=translate_inline($array,"datetime");
 | 
						|
		if ($d > 0)
 | 
						|
			$o = $d.$array['d'].($h>0?$h.$array['h']:"");
 | 
						|
		elseif ($h > 0)
 | 
						|
			$o = $h.$array['h'].($m>0?$m.$array['m']:"");
 | 
						|
		elseif ($m > 0)
 | 
						|
			$o = $m.$array['m'].($s>0?$s.$array['s']:"");
 | 
						|
		else
 | 
						|
			$o = $s.$array['s'];
 | 
						|
 | 
						|
/*		if ($d > 0)
 | 
						|
			$o = sprintf("%3s%2s",$d.$array['d'],($h>0?$h.$array['h']:""));
 | 
						|
		elseif ($h > 0)
 | 
						|
			$o = sprintf("%3s%2s",$h.$array['h'],($m>0?$m.$array['m']:""));
 | 
						|
		elseif ($m > 0)
 | 
						|
			$o = sprintf("%3s%2s",$m.$array['m'],($s>0?$s.$array['s']:""));
 | 
						|
		else
 | 
						|
			$o = sprintf("%5s", $s.$array['s']);
 | 
						|
		$o = str_replace(" ", " ", $o);*/
 | 
						|
	}else{
 | 
						|
		$array=array("day"=>"day","days"=>"days","hour"=>"hour","hours"=>"hours","minute"=>"minute","minutes"=>"minutes","second"=>"second","seconds"=>"second");
 | 
						|
		$array=translate_inline($array,"datetime"); //translate it... tl-ready now
 | 
						|
		if ($d > 0)
 | 
						|
			$o = "$d ".($d>1?$array['days']:$array['day']).($h>0?", $h ".($h>1?$array['hours']:$array['hour']):"");
 | 
						|
		elseif ($h > 0)
 | 
						|
			$o = "$h ".($h>1?$array['hours']:$array['hour']).($m>0?", $m ".($m>1?$array['minutes']:$array['minute']):"");
 | 
						|
		elseif ($m > 0)
 | 
						|
			$o = "$m ".($m>1?$array['minutes']:$array['minute']).($s>0?", $s ".($s>1?$array['seconds']:$array['second']):"");
 | 
						|
		else
 | 
						|
			$o = "$s ".($s>0?$array['seconds']:$array['second']);
 | 
						|
	}
 | 
						|
	return $o;
 | 
						|
}
 | 
						|
 | 
						|
function relativedate($indate){
 | 
						|
	$laston = round((strtotime("now")-strtotime($indate)) / 86400,0) . " days";
 | 
						|
	tlschema("datetime");
 | 
						|
	if (substr($laston,0,2)=="1 ")
 | 
						|
		$laston=translate_inline("1 day");
 | 
						|
	elseif (date("Y-m-d",strtotime($laston)) == date("Y-m-d"))
 | 
						|
		$laston=translate_inline("Today");
 | 
						|
	elseif (date("Y-m-d",strtotime($laston)) == date("Y-m-d",strtotime("-1 day")))
 | 
						|
		$laston=translate_inline("Yesterday");
 | 
						|
	elseif (strpos($indate,"0000-00-00")!==false)
 | 
						|
		$laston = translate_inline("Never");
 | 
						|
	else {
 | 
						|
		$laston= sprintf_translate("%s days", round((strtotime("now")-strtotime($indate)) / 86400,0));
 | 
						|
		rawoutput(tlbutton_clear());
 | 
						|
	}
 | 
						|
	tlschema();
 | 
						|
	return $laston;
 | 
						|
}
 | 
						|
 | 
						|
function checkday() {
 | 
						|
	global $session,$revertsession,$REQUEST_URI;
 | 
						|
	if ($session['user']['loggedin']){
 | 
						|
		output_notl("<!--CheckNewDay()-->",true);
 | 
						|
		if(is_new_day()){
 | 
						|
			$post = $_POST;
 | 
						|
			unset($post['i_am_a_hack']);
 | 
						|
			if (count($post) > 0){
 | 
						|
				$session['user']['lasthit'] = "0000-00-00 00:00:00";
 | 
						|
				return;
 | 
						|
			} else {
 | 
						|
				$session=$revertsession;
 | 
						|
				$session['user']['restorepage']=$REQUEST_URI;
 | 
						|
				$session['allowednavs']=array();
 | 
						|
				addnav("","newday.php");
 | 
						|
				redirect("newday.php");
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
function is_new_day($now=0){
 | 
						|
	global $session;
 | 
						|
 | 
						|
	if ($session['user']['lasthit'] == "0000-00-00 00:00:00") {
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	$t1 = gametime();
 | 
						|
	$t2 = convertgametime(strtotime($session['user']['lasthit']." +0000"));
 | 
						|
	$d1 = gmdate("Y-m-d",$t1);
 | 
						|
	$d2 = gmdate("Y-m-d",$t2);
 | 
						|
 | 
						|
	if ($d1!=$d2){
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	return false;
 | 
						|
}
 | 
						|
 | 
						|
function getgametime(){
 | 
						|
	return gmdate("g:i a",gametime());
 | 
						|
}
 | 
						|
 | 
						|
function gametime(){
 | 
						|
	$time = convertgametime(strtotime("now"));
 | 
						|
	return $time;
 | 
						|
}
 | 
						|
 | 
						|
function convertgametime($intime,$debug=false){
 | 
						|
 | 
						|
	//adjust the requested time by the game offset
 | 
						|
	$intime -= getsetting("gameoffsetseconds",0);
 | 
						|
 | 
						|
	// we know that strtotime gives us an identical timestamp for
 | 
						|
	// everywhere in the world at the same time, if it is provided with
 | 
						|
	// the GMT offset:
 | 
						|
	$epoch = strtotime(getsetting("game_epoch",gmdate("Y-m-d 00:00:00 O",strtotime("-30 days"))));
 | 
						|
	$now = strtotime(gmdate("Y-m-d H:i:s O",$intime));
 | 
						|
	$logd_timestamp = ($now - $epoch) * getsetting("daysperday",4);
 | 
						|
	if ($debug){
 | 
						|
		echo "Game Timestamp: ".$logd_timestamp.", which makes it ".gmdate("Y-m-d H:i:s",$logd_timestamp)."<br>";
 | 
						|
	}
 | 
						|
	return $logd_timestamp;
 | 
						|
}
 | 
						|
 | 
						|
function gametimedetails(){
 | 
						|
	$ret = array();
 | 
						|
	$ret['now'] = date("Y-m-d 00:00:00");
 | 
						|
	$ret['gametime'] = gametime();
 | 
						|
	$ret['daysperday'] = getsetting("daysperday", 4);
 | 
						|
	$ret['secsperday'] = 86400/$ret['daysperday'];
 | 
						|
	$ret['today'] = strtotime(gmdate("Y-m-d 00:00:00 O", $ret['gametime']));
 | 
						|
	$ret['tomorrow'] =
 | 
						|
		strtotime(gmdate("Y-m-d H:i:s O",$ret['gametime'])." + 1 day");
 | 
						|
	$ret['tomorrow'] = strtotime(gmdate("Y-m-d 00:00:00 O",$ret['tomorrow']));
 | 
						|
	// Why isn't this
 | 
						|
	// $ret['tomorrow'] =
 | 
						|
	//	strtotime(gmdate("Y-m-d 00:00:00 O",$ret['gametime'])." + 1 day");
 | 
						|
	$ret['secssofartoday'] = $ret['gametime'] - $ret['today'];
 | 
						|
	$ret['secstotomorrow'] = $ret['tomorrow']-$ret['gametime'];
 | 
						|
	$ret['realsecssofartoday'] = $ret['secssofartoday'] / $ret['daysperday'];
 | 
						|
	$ret['realsecstotomorrow'] = $ret['secstotomorrow'] / $ret['daysperday'];
 | 
						|
	$ret['dayduration'] = ($ret['tomorrow']-$ret['today'])/$ret['daysperday'];
 | 
						|
	return $ret;
 | 
						|
}
 | 
						|
 | 
						|
function secondstonextgameday($details=false) {
 | 
						|
	if ($details===false) $details = gametimedetails();
 | 
						|
	return strtotime("{$details['now']} + {$details['realsecstotomorrow']} seconds");
 | 
						|
}
 | 
						|
 | 
						|
function getmicrotime(){
 | 
						|
	list($usec, $sec) = explode(" ",microtime());
 | 
						|
	return ((float)$usec + (float)$sec);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
?>
 |