İki Tarih Arasındaki Farkı Bulmak

<?php
class ZamanFarkiHesapla{
	var $damga1;
	var $damga2;
	function yilGetir($veri){
	   $sonuc=getdate($veri);
	   return ($sonuc['year']);
	}
	function gunGetir($damga){
	   $sonuc=getdate($damga);
	   return (($sonuc['yday'])+1);
	}
	function yilGun($year){
		$sonuc=$this->gunGetir(strtotime("$year-12-31"));
		return $sonuc;
	}
	function gecenYilGun($damga){
		$year=$this->yilGetir($damga);
		$sonuc=$this->gunGetir(strtotime("$year-12-31"));
		return $sonuc;
	}
	function sonYilGunu($damga){
		$gecen_yil_gun=$this->gecenYilGun($damga);
		$gun_getir=$this->gunGetir($damga);
		return ($gecen_yil_gun-$gun_getir);

	}
	function farkGetir($d1,$d2){
		$ortala=0;
		$this->damga1=strtotime($d1);
		$this->damga2=strtotime($d2);
		$yil1=$this->yilGetir($this->damga1);
		$yil2=$this->yilGetir($this->damga2);
		$fark=$yil2 - $yil1;
		switch ($fark)		{
			case '0':
				$gun1=$this->gunGetir($this->damga1);
				$gun2=$this->gunGetir($this->damga2);
				$sonuc=$gun2-$gun1;
			break;
			case '1':
				$gun1=$this->sonYilGunu($this->damga1);
				$gun2=$this->gunGetir($this->damga2);
				$sonuc=$gun1+$gun2;
			break;
			case $fark>=2:
				$gun1=$this->sonYilGunu($this->damga1);
				$gun2=$this->gunGetir($this->damga2);
				for( $i=(( $this->yilGetir($this->damga1) )+1);$i<( $this->yilGetir($this->damga2) );$i++ )
					$ortala+=$this->yilGun($i);
				$sonuc=$gun1+$gun2+$ortala;
			break;
		}
		return $sonuc;				
	}
}	
$dateDiff= new ZamanFarkiHesapla();
echo $dateDiff->farkGetir("1914-07-28","2018-06-05");//1.Dünya Savaşı
?>

Çıktısı

37933

 

Tarihsel Aritmetik Matematik İşlemleri

<?php
class Tarih{
	function isle($tarih, $islemler, $ne = FALSE, $miktar, $sonuc = FALSE){
		$hata = "<br>Uyarı! Tarih İşlemleri Başarısız ... ";
		if(!$tarih || !$islemler) {
			return "$hata geçersiz veya mevcut olmayan argümanlar<br>";
		}else{
			if(!($islemler == "cikar" || $islemler == "-" || $islemler == "topla" || $islemler == "+")) return "<br>$hata Geçersiz İşlem...<br>";
			else {
				list($gun, $ay, $yil) = explode("/", $tarih);
				($islemler == "cikar" || $islemler == "-") ? $islem = "-" : $islem = '';
				if($ne == "gun")   $topla_gun	 = $islem."$miktar";
				if($ne == "ay") $topla_ay = $islem."$miktar";
				if($ne == "yil")  $topla_yil	 = $islem."$miktar";
				$tarih = mktime(0, 0, 0, $ay + @$topla_ay, $gun + @$topla_gun, $yil + @$topla_yil);
				($sonuc == "timestamp" || $sonuc == "ts") ? $tarih = $tarih : $tarih = date("d/m/Y", "$tarih");
				return $tarih;
			}
		}
	}
}
$t = new Tarih;
echo $tarih = $t->isle("26/05/2018", "topla", "gun", "4");
echo "<br>";
echo $tarih = $t->isle("26/05/2018", "cikar", "gun", "4");
echo "<br>";
echo $tarih = $t->isle("26/05/2018", "topla", "ay", "4");
?>

Çıktı

30/05/2018
22/05/2018
26/09/2018

 

Sayfa Performans Sınıfı

<?php 
class performans{
	var $basla;
	var $bitir;
	var $toplam;
	function getir(){
		$mtime = microtime();
		$mtime = explode(" ", $mtime);
		$mtime = doubleval($mtime[1]) + doubleval($mtime[0]);

		return $mtime;
	}
	function basla(){
			$this->basla = $this->getir();
	}
	function bitir(){
			$this->bitir = $this->getir();
	}
	function yazdir(){
			$basla = $this->basla;
			$bitir = $this->bitir;
			$toplam = sprintf("%.4f", abs($basla - $bitir));

			return $toplam;
	}
}
$p = new performans();
$p->basla();
for($x=0;$x<3300000;$x++)if($x%1000000 == 0)echo $x;
$p->bitir();
echo("<br>Sayfa toplam " . $p->yazdir() . " saniyede yüklendi");
?>

Çıktısı

0100000020000003000000
Sayfa toplam 1.0591 saniyede yüklendi

 

İki Tarih Arasındaki Farkı Gün, Saat, Dakika ve Saniye Olarak Hesaplamak

<?php
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Istanbul');
class tarihfarki{
	public $tarih1, $tarih2, $a, $gun, $saat, $dakika, $saniye;
	function __construct($tarih1, $tarih2){
		$this->tarih1 = $tarih1;
		$this->tarih2 = $tarih2;
		$this->gun = intval((strtotime($this->tarih1) - strtotime($this->tarih2)) / 86400);
		$this->a = ((strtotime($this->tarih1) - strtotime($this->tarih2))) % 86400;
		$this->saat = intval(($this->a) / 3600);
		$this->a = ($this->a) % 3600;
		$this->dakika = intval(($this->a) / 60);
		$this->a = ($this->a) % 60;
		$this->saniye = $this->a;
	}
}
$sonuc = new tarihfarki("01.01.2007 11:02:02", "20.12.2006 10:00:00");
echo $sonuc->gun . ' gün ' . $sonuc->saat . ' saat ' . $sonuc->dakika . ' dakika ' . $sonuc->saniye . ' saniye';
?>

Çıktısı

12 gün 1 saat 2 dakika 2 saniye

Bonus

Bulunduğunuz Yerin Saatini Öğrenmek için https://www.google.com.tr/search?q=between+time

Saat Farkı Eklemek veya Çıkarmak

<?php
date_default_timezone_set('Europe/Istanbul');
class saatFark {
	function saatAl($saatfark) {
		$zamanayari = ($saatfark * 60 * 60);
		return date("d.m.Y H:i:s",time() + $zamanayari);
	}
}
$s = new saatFark();
echo $s->saatAl(0);//bugün
echo "<br>";
echo $s->saatAl(-24);//dün
?>

Çıktısı

23.05.2018 22:11:09
22.05.2018 22:11:09