İ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

 

Değişik Stillerde Türkçe Tarih Gösterimi

<?php
class tarih_tr{
	function gun_tr($gun){
		switch($gun){
			case 0 : $gun = "Pazar";
				break;
			case 1 : $gun = "Pazartesi";
				break;
			case 2 : $gun = "Salı";
				break;
			case 3 : $gun = "Çarşamba";
				break;
			case 4 : $gun = "Perşembe";
				break;
			case 5 : $gun = "Cuma";
				break;
			case 6 : $gun = "Cumartesi";
				break;
		}
		return $gun;
	}
	function ay_tr($ay){
			switch($ay){
				case 1 : $ay = "Ocak";
					break;
				case 2 : $ay = "Şubat";
					break;
				case 3 : $ay = "Mart";
					break;
				case 4 : $ay = "Nisan";
					break;
				case 5 : $ay = "Mayıs";
					break;
				case 6 : $ay = "Haziran";
					break;
				case 7 : $ay = "Temmuz";
					break;
				case 8 : $ay = "Ağustos";
					break;
				case 9 : $ay = "Eylül";
					break;
				case 10 : $ay = "Ekim";
					break;
				case 11 : $ay = "Kasım";
					break;
				case 12 : $ay = "Aralık";
					break;
			}
		return $ay;
	}
	function hazirla($stil){
		if(empty($stil) or $stil>4 or $stil<1){
			$stil = 4;
		}
		if($stil==1){
			$veri = date("d")."/".date("m")."/".date("y");
		}elseif($stil==2){
			$veri = date("d")."/".date("m")."/".date("Y");
		}elseif($stil==3){
			$veri = date("d")."/".date("m")."/".date("Y")." ".$this->gun_tr(date("w"));
		}elseif($stil==4){
			$veri = date("d")." ".$this->ay_tr(date("n"))." ".date("Y")." ".$this->gun_tr(date("w"));
		}
	return $veri;
	}
}
$dt = new tarih_tr;
echo $dt->hazirla(1);
echo "<br>";
echo $dt->hazirla(2);
echo "<br>";
echo $dt->hazirla(3);
echo "<br>";
echo $dt->hazirla(4);
?>

Çıktısı

30/05/18
30/05/2018
30/05/2018 Çarşamba
30 Mayıs 2018 Çarşamba

 

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

 

İ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

Türkçe Tarih Formatlamak

<?php
header('Content-Type: text/html; charset=utf-8');
class tr {
	static function tarih($format='',$tarih=''){
		$aylar = Array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
		$gunler = Array('Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi');
		if($tarih== ''){$tarih=time();}
    $ftarih = str_replace('D','#1', $format);
    $ftarih = str_replace('l','#2', $ftarih);
    $ftarih = str_replace('M','#3', $ftarih);
    $ftarih = str_replace('f','#4', $ftarih);
    $gun = $gunler[date('w', $tarih)];
    $ay = $aylar[date('m', $tarih)-1];
    $cikti = str_replace('#1',$gun, date($ftarih, $tarih));
    $cikti = str_replace('#2',$gun, $cikti);
    $cikti = str_replace('#3',$ay, $cikti);
    $cikti = str_replace('#4',$ay, $cikti);
    return($cikti);
  }
}
echo tr::tarih('d M Y, D H:i:s');
?>

Çıktısı

23 Mayıs 2018, Çarşamba 20:38:10

 

Tarih ve Saat Dönüştürme Sınıfı

<?php
date_default_timezone_set('Europe/Istanbul');
class TarihYonet {
	public $girilen;
	public $damga;
	public $tarih;
	public $zaman;#YYYY-MM-DD HH:MM:SS
	function __construct($girilen) {
		$this->girilen = trim($girilen);
		if (preg_match("/^\d{4}-\d{2}-\d{2}$/", $this->girilen)) { 
			$tarihDizi = explode('-', $this->girilen);
			$this->tarih			= $this->girilen;
			$this->damga 	= mktime(0, 1, 1, $tarihDizi[1], $tarihDizi[2], $tarihDizi[0]);
			$this->zaman 	= date('Y-m-d H:i:s', $this->damga);
		} else if (preg_match("/^\d{4}-\d{2}-\d{2} [0-2][0-3]:[0-5][0-9]:[0-5][0-9]$/", $this->girilen)) { 
			$parcala			= explode(' ', $this->girilen);
			$tarihDizi 			= explode('-', $parcala[0]);
			$this->zaman		= $this->girilen;
			$this->damga 	= mktime(0, 1, 1, $tarihDizi[1], $tarihDizi[2], $tarihDizi[0]);
			$this->tarih 		= date('Y-m-d', $this->damga);
		} else { 
			$this->damga 	= $this->girilen;
			$this->tarih 		= date('Y-m-d', $this->girilen);
			$this->zaman 	= date('Y-m-d H:i:s', $this->girilen);
		}
	}
}
	$ornek 	= new TarihYonet(time());
	print_r($ornek);

?>

Çıktısı

TarihYonet Object
(
    [girilen] => 1526461072
    [damga] => 1526461072
    [tarih] => 2018-05-16
    [zaman] => 2018-05-16 11:57:52
)

 

Belirli Bir Günden Önceki ve Sonraki Tarihleri Bulma

<?php
class tarihbul{
public $tarih1, $yenitarih, $veri;
	function __construct($tarih, $gun, $islem){
		$this->tarih1 = $tarih;
		switch ($islem){
			case "+":
				$this->veri = strtotime($tarih) + $gun * 86400;
				break;
			case "-":
				$this->veri = strtotime($tarih) - $gun * 86400;
				break;
		}
		$this->yenitarih = date("d.m.Y",$this->veri);
	}
}
// Yarinı Bul
$sonuc = new tarihbul(date("d.m.Y"), "1", "+");
echo $sonuc->yenitarih."<br>";
// Dünü Bul
$sonuc = new tarihbul(date("d.m.Y"), "1", "-");
echo $sonuc->yenitarih."<br>";
// 13.05.2015'ten 50 gün sonrasını bul 
$sonuc = new tarihbul(("13.05.2015"), "50", "+");
echo $sonuc->yenitarih."<br>";
?>

Çıktısı

14.05.2018
12.05.2018
02.07.2015

 

Zamana ve Eklere Göre Rastgele Şifre Üretme Sınıfı

<?php
class sifreUret{
  var $gecici;
  function sifreUret($uzunluk=6, $ek="kelime"){
    $sifre=$ek.date("s:H:m:i:s");
    $this->gecici=substr(md5($sifre), 2, $uzunluk);
  }
  function get_sifre(){
    return $this->gecici;
  }
}

$p=new sifreUret();
$p->sifreUret(8);           
print $p->get_sifre();
echo "<br>";
$p->sifreUret(8, "benimkelimem");           
print $p->get_sifre();
?>

Çıktısı

7fe03153
c65ebee1