İki Tarih Arasındaki Farkı Bulmak

PHP
59 lines
<?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şı
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
1 lines
37933
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Tarihsel Aritmetik Matematik İşlemleri

PHP
28 lines
<?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");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktı

Markdown
3 lines
30/05/2018
22/05/2018
26/09/2018
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Sayfa Performans Sınıfı

PHP
32 lines
<?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");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
2 lines
0100000020000003000000
Sayfa toplam 1.0591 saniyede yüklendi
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

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

PHP
20 lines
<?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';
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
1 lines
12 gün 1 saat 2 dakika 2 saniye
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Bonus

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

Saat Farkı Eklemek veya Çıkarmak

PHP
13 lines
<?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
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
2 lines
23.05.2018 22:11:09
22.05.2018 22:11:09
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX