+1 امتیاز
قبل در برنامه نویسی توسط (164 امتیاز)
ویرایش شده قبل توسط

با سلام

چطور باید در PHP، تاریخ را به صورت گذشته نثری نمایش بدیم نه بصورت تقویمی .یعنی مثل همین سایت بجای تاریخ نمایش بدیم امروز, دیروز, 8 ساعت پیش ,دوماه پیش, وغیره...

قبل توسط (1.1هزار امتیاز)
+1
مشخص نکردید تکنولوژی سمت سروری که استفاده می کنید چییست؟ (PHP، ASP و ...)
قبل توسط (164 امتیاز)
ممنون از توجه شما.
والا از phpاستفاده میکنم.

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

می تونید از تابع زیر استفاده کننید:

function get_time_ago ($time) // e.g. '2013-05-28 17:25:43'
{

    $time = time() - $time; // to get the time since that moment

    $tokens = array (
        31536000 => 'سال',
        2592000 => 'ماه',
        604800 => 'هفته',
        86400 => 'روز',
        3600 => 'ساعت',
        60 => 'دقیقه',
        1 => 'ثانیه'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
	  $numberOfUnits = floor($time / $unit);
	  
        return $numberOfUnits.' '.$text.' پیش';
    }

}
قبل توسط (164 امتیاز)
من تاریخ موجود در تابعی که نوشتین نو('2013-05-28 17:25:43') دادم به تابع یرگردوند 43سال پیش.
یعنی تایخ منهای timeکه میکنه عدید1371728543میده.این عدد چیه ثانیه گذشته است.؟
راستش من تاریخرو به صورت timestampذخیره میکنم .آیا این تابع درست کار میکنه!؟
قبل توسط (1.1هزار امتیاز)
من با time تست کردم درست کار می کنه. از تابع strtotime استفاده کردم.
قبل توسط (164 امتیاز)
راستش چیزی که من برداشت کردم از این تابع باید زمان ذخیره شده رو منهای زمان جاری کنه و جوابو به ثانیه داشته باشه بعد تویه حلقه باقی مانرو با الگوی ثانیه ای این آرایه مقایسه کنه تقسیم کنه و جواب نهایی بده؟درسته؟
قبل توسط (1.1هزار امتیاز)
بله دقیقا همینطوره ولی طول حلقه for همیشه 7 است.
قبل توسط (164 امتیاز)
شما در این سایت تاریخ نظرو مثل من بصورت مقدار پیش فرض timestamp ذخیره میکنید یا خودتون  با توابع زمان به هش تاریخ میدین؟چون من timestampمیدن کار نمی کنه.تاریخو هم که بصورت دستی بهش میدم مثلآ تاریخ امروز هیچی بر نمی گردونه؟
میشه تست کنید تاریخی که دستی دادم
National::get_time_ago(strtotime('2013-06-21 07:25:43'));
قبل توسط (1.1هزار امتیاز)
من این پارامتر رو به این تابع فرستادم کار می کنه:
$time = strtotime('2013-03-28 17:25:43');
قبل توسط (164 امتیاز)
با تشکر از جناب Saeed Zarinfam.
مشکل بصورت معجزه اسایی حل شد.نمی دونمم چرا .فکر کنم تو این مدت از کش میخونده.یا چی نمی دونم...در هر صورت خداروشکروممنونم

سوالات مشابه

+1 امتیاز
1 پاسخ 1.1هزار بازدید
+1 امتیاز
2 پاسخ 1.0هزار بازدید
0 امتیاز
0 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 342 بازدید
0 امتیاز
1 پاسخ 391 بازدید
0 امتیاز
1 پاسخ 521 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط maryaam (106 امتیاز)
0 امتیاز
1 پاسخ 1.2هزار بازدید
...