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']))
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.
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}";
}