Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 14.05.2014 21:58:21

Funal
Üye
Yer: İSTANBUL
Kayıtlı: 23.08.2013
Mesajlar: 87
Website

Js ve Php ile Zaman tahmin fonksiyonları

Merhaba arkadaşlar bir proje için yazmıştım bir heves ile sizler ile paylaşmak istedim

Arkadaşlar bu php ile hesaplama kullanımı

 function  GecenZaman ($saniye = 1) {

        if ( ! is_numeric($saniye)){

            $saniye = 1;
        }

        $zaman = time();

        if ($zaman <= $saniye){

            $saniye = 1;

        }else{
            $saniye = $zaman - $saniye;
        }

        $gecen_zaman = '';
        
        $yıl = floor($saniye / 31536000);

        if ($yıl > 0){

            $gecen_zaman .= $yıl.' yıl, ';

        }

        $saniye -= $yıl * 31536000;
        
        $ay = floor($saniye / 2628000);

        if ($yıl > 0 || $ay > 0){

            if ($ay > 0){

                $gecen_zaman .= $ay.' ay, ';

            }

            $saniye -= $ay * 2628000;
        }

        $hafta = floor($saniye / 604800);

        if ($yıl > 0 || $ay > 0 || $hafta > 0){

            if ($hafta > 0){

                $gecen_zaman .= $hafta.' hafta, ';

            }

            $saniye -= $hafta * 604800;
        }

        $gun = floor($saniye / 86400);

        if ($ay > 0 || $hafta > 0 || $gun > 0){

            if ($gun > 0){

                $gecen_zaman .= $gun.' gün, ';

            }

            $saniye -= $gun * 86400;
        }

        $saat = floor($saniye / 3600);

        if ($gun > 0 || $saat > 0){

            if ($saat > 0){

                $gecen_zaman .= $saat.' saat, ';

            }

            $saniye -= $saat * 3600;
        }

        $dakika = floor($saniye / 60);

        if ($gun > 0 || $saat > 0 || $dakika > 0){

            if ($dakika > 0){

                $gecen_zaman .= $dakika.' dakika, ';

            }

            $saniye -= $dakika * 60;
        }

        if ($gecen_zaman == ''){

            $gecen_zaman .= $saniye.' saniye, ';

        }

        return substr(trim($gecen_zaman), 0, -1) . " önce ";

    }

Js fonksiyonu

function GecenZaman(gecenSure){

        if(gecenSure){
            
            var myDate = new Date();
            
            var $zaman = (myDate.getTime() /1000) - gecenSure;
            
            var $yil,$ay,$hafta,$gun,$saat,$dakika,$sure;
            
            $sure = "";
            
            $yil = Math.floor($zaman / 31536000);
            
            if(typeof $yil != 'undefined' && $yil > 0){
                
                $sure += $yil + " yıl, ";
                
            }

            $zaman -= $yil * 31536000;
            
            $ay = Math.floor($zaman / 2628000);
            
            if($yil > 0 || $ay > 0){
                
                if( typeof $ay != 'undefined' && $ay > 0){
                    
                    $sure += $ay + " ay, ";
                    
                }

                $zaman -= $ay * 2628000;
                
            }

            $hafta = Math.floor($zaman / 604800);
            
            if($yil > 0 || $ay > 0 || $hafta > 0){
                
                if( typeof $hafta != 'undefined' && $hafta > 0){
                    
                    $sure += $hafta + " hafta, ";
                    
                }

                $zaman -= $hafta * 604800;
            }

            $gun = Math.floor($zaman / 86400);
            
            if($ay > 0 || $hafta > 0 || $gun > 0){

                if( typeof $gun != 'undefined' && $gun > 0){
                    
                    $sure += $gun + " gün, ";
                    
                }

                $zaman -= $gun * 86400;
            }

            $saat = Math.floor($zaman / 3600);
            
            if($hafta > 0 || $gun > 0 || $saat > 0){

                if( typeof $saat != 'undefined' && $saat > 0){
                    
                    $sure += $saat + " saat, ";
                    
                }

                $zaman -= $saat * 3600;
            }

            $dakika = Math.floor($zaman / 60);
            
            if($gun > 0 || $saat > 0 || $dakika > 0){

                if( typeof $dakika != 'undefined' && $dakika > 0){
                    
                    $sure += $dakika + " dakika, ";
                    
                }

                $zaman -= $dakika * 60;
            }

            if($sure == ""){

                $sure += Math.floor($zaman) + " saniye, ";

            }

            return $sure.substring(0,$sure.length - 2) + " önce ";
        }
    }

Js fonksiyonunda span'a php ile tarihi strtotime olarak data-gecen olarak gönderiyorum. Sayfa yüklendiğinde jQuery ile data-gecen değerini çekip setInterval ile 1 dk yada 30 sn'de fonksiyondan dönen değer yine data-gecen değerini aldığım spana html olarak yazdırıyorum.

Kolay gelsin.

Çevrimdışı

#2 15.05.2014 07:36:02

xsearch
Üye
Yer: İzmir
Kayıtlı: 30.01.2014
Mesajlar: 222
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Solid solid olalı böyle zulüm görmedi diyebiliriz smile)))
@Funal bence bu fonksiyonları bir elden geçir. SOLID ile yazmaya çalış.

Çevrimdışı

#3 15.05.2014 08:11:24

cemdemir
Üye
Yer: Demir
Kayıtlı: 26.08.2013
Mesajlar: 80
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

@Funal Eline sağlık, ama xsearch'e katılmadan edemedim. lol

xsearch yazdı:

Solid solid olalı böyle zulüm görmedi diyebiliriz smile)))
@Funal bence bu fonksiyonları bir elden geçir. SOLID ile yazmaya çalış.

Çevrimdışı

#4 15.05.2014 09:10:13

Funal
Üye
Yer: İSTANBUL
Kayıtlı: 23.08.2013
Mesajlar: 87
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Kabul ediyorum berbat bir programcıyım. Galiba işi hobiden öteye taşımam lazım. Teşekkürler SOLID ile güncelleyip tekrar paylaşırım

Çevrimdışı

#5 15.05.2014 09:27:44

xsearch
Üye
Yer: İzmir
Kayıtlı: 30.01.2014
Mesajlar: 222
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Berbat programcı olmak ayrı şey, kodlama standartları ayrı şey.
Bide berbat programcılıkta üstüme tanımam smile))

Çevrimdışı

#6 15.05.2014 09:34:34

iozguradem
Üye
Yer: Sakarya
Kayıtlı: 25.04.2014
Mesajlar: 84
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Hepimiz berbat programcılarız. Bu işin üst seviyesi yok. Birbirimizin kodlarını sonuna kadar eleştirmeliyiz ki iyi şeyler ortaya çıkartalım. smile Çalışmalar GitHub üzerinden yürütülürse destek vermeye de çalışırız. smile


PHP İle Paket Geliştirme başlıklı e-kitabımı ücretsiz olarak indirebilirsiniz: Link

Çevrimdışı

#7 15.05.2014 10:30:57

Funal
Üye
Yer: İSTANBUL
Kayıtlı: 23.08.2013
Mesajlar: 87
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Eleştiriye açık olmak çok güzel birşey insan yaptığı hataları görüyor.
En kısa zamanda bir ambar oluşturacam.
Teşekkürler

Çevrimdışı

#8 08.06.2014 02:43:10

cangelis
Üye
Yer: İstanbul
Kayıtlı: 08.11.2013
Mesajlar: 26
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Çevrimdışı

#9 23.07.2014 12:17:06

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

PHP ile Carbon bunun için çok basit bir örnek sunuyor:

Örneğin;

echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'

Paketi incelemenizi tavsiye ederim, çoğu kez işimi oldukça kolaylaştırdı.


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#10 23.07.2014 14:10:22

Roni
Üye
Kayıtlı: 17.07.2013
Mesajlar: 276

Yanıt: Js ve Php ile Zaman tahmin fonksiyonları

Buradaki bilgiye göre http://php.net/manual/en/class.datetime.php#108970 aşağıdaki fonksiyonu yazdım.

<?php
date_default_timezone_set('Europe/Istanbul');
function timeAgo($date){
	$now = new DateTime(date('Y-m-d H:i:s'));
	$date = new DateTime($date);
	$diff = $date->diff($now);
  	$info = array(
	    'y' => 'Yıl',
	    'm' => 'Ay',
	    'd' => 'Gün',
	    'h' => 'Saat',
	    'i' => 'Dakika',
	    's' => 'Saniye'
	);
	
	foreach ($info as $k => $vall) {
        if ($diff->$k) {
            return $diff->$k . ' ' . $vall;
        }
    }
}
 
echo timeAgo('2014-07-23 15:06:13');
?>

Son düzenleyen Roni (23.07.2014 14:25:10)

Çevrimdışı

Forum alt kısmı