MySQL ve PHP tescil tarihinden itibaren dakika ve saat sayıyor?

3 Cevap php

Nasıl benim MySQL veritabanında saklanır orada tescil tarihinden itibaren kayıtlı bir üye datetime olarak PHP kullanarak ve yana dakika ve saat saymak MySQL.

İşte ben bugüne kadar ne var.

date('F j, Y g:i:s A', strtotime($row['rdate']))

3 Cevap

Temiz cevabı bunu yapmak için veritabanı SQL çözümleyici sormaktır.

SELECT
   DATEDIFF(NOW(), registered_date) AS days_since_registration,
   TIMEDIFF(NOW(), registered_date) AS hours_since_registration
FROM users;

Bu sütun registered_date biçimi olan DATETIME varsayarak var.

BTW, oldukça MySQL datetime bir iç biçimi vardır ve tahmin olmadan bir unix saate dönüştürmek gibi strftime() kullanarak daha sorguya UNIX_TIMESTAMP() kullanmak da iyidir. strftime() sorunları olması muhtemel ama bir tarih formatı ayrıştırmak var ve tahmin içerir.

Bu neredeyse olduğu gibi, bu temel ilkeyi verir görünüyor:

$seconds = time() - strtotime( $row['rdate'] );
$minutes = $seconds / 60;
$hours = $seconds / 3600;
$days = $seconds / 86400;
$weeks = $seconds / 604800;

time ago in words taken from examples on here http://php.net/manual/en/function.time.php

ne istediğinizi bu

örnek çıktı 3 dakika önce 1 saat

public static function timeAgo($date){
            if(empty($date)) {
                return "No date provided";
            }

            if( Settings::read( 'localize') ){
                $periods = array("{{second}}", "{{minute}}", "{{hour}}", "{{day}}", "{{week}}", "{{month}}", "{{year}}", "{{decade}}");
            }else{
                $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
            }
            $lengths = array("60","60","24","7","4.35","12","10");

            $now = time();

            strtotime($date);   

            //

            // check validity of date
            if(empty($unix_date)) {   
                return "Bad date";
            }

            // is it future date or past date
            if($now > $unix_date) {   
                $difference     = $now - $unix_date;
                $tense         = "ago";

            } else {
                $difference     = $unix_date - $now;
                $tense         = "from now";
            }

            for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
                $difference /= $lengths[$j];
            }

            $difference = round($difference);

            if($difference != 1) {
                $periods[$j].= "s";
            }

            return "$difference $periods[$j] {$tense}";
        }