رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
جستجو در
  • تنظیمات بیشتر ...
نمایش نتایجی که شامل ...
جستجو در ...

انجمن های تخصصی کمیاب اسکریپت

انجمن هاي تخصصي کمياب اسکريپت، محيطي جهت تبادل اطلاعات تخصصي براي وب مستران

  • پشتيباني آنلاين 24/7
  • آموزش هاي تخصصي
  • رفع مشکلات کاربران
MRahmad

نمایش تاریخ به صورت ago با php

پست های پیشنهاد شده

MRahmad    85

مدیر سایت

سلام به همه ی دوستان عزیز کمیاب اسکریپتی، خیلی وقتا شده که میخوایم تاریخ رو با توجه به زمان کنونی نشون بدیم! یعنی چی؟ فرض کنید شما الان یک پست (مطلب) روی سایت خودتون بزارید و زمان گذاشته شدن پست رو نیز بخواید نمایش بدید. شما میتونید به دو صورت زمان رو نمایش بدید :

روش اول : نمایش زمان با توجه به سال و روز و ماه مثلا : 2015/2/15 که تاریخ مطلق رو نشون میده!

روش دوم : نمایش زمان با توجه به زمان کنونی مثلا : دو روز پیش که تاریخ رو به صورت نسبی نمایش میده!

برای نمایش تاریخ با استفاده از روش اول که تاریخ رو به صورت مطلق نمایش میده به صورت زیر عمل میکنیم:

$time=time();
echo date('Y/m/d',$time);
نقل قول

در دستورات بالا با استفاده از تابع date تاریخ رو نمایش دادیم. کافیه که زمان مورد نظر خودتون رو با استفاده از تابع time درون دیتابیس ذخیره کنید , بعدا این زمان ذخیره شده رو با استفاده از تابع date فرمت دهی کنید , در مثال بالا نیز روش کار شرح داده شد.

دوستان عزیز در تابع date کلمه ی Y سال , کلمه ی m ماه و کلمه ی d روز رو به ما میده. اگه بخواید ساعت و دقیقه و ثانیه رو هم نمایش بدید میتونید به صورت زیر عمل کنید :

$time=time();
echo date('Y/m/d H:i:s',$time);
نقل قول

در دستورات بالا کلمه ی H ساعت , کلمه ی i دقیقه و کلمه ی s ثانیه رو به ما میده اون اسلش ها و دو نقطه ها الکی هست و میتونید حذفشون کنید , فقط برای خوشکلی ازشون استفاده کردیم.

در روش دوم تاریخ رو با استفاده از PHP به صورت نسبی نمایش میدیم , برای نمایش تاریخ به صورت نسبی کار یکم سخت تر میشه ما یه تابع تعریف میکنیم که تاریخ رو بگیره و تبدیل به تاریخ نسبی با توجه به زمان کنونی کنه! تابع ما به صورت زیر خواهد بود:

function ago_time($time_ago) {
    $cur_time = time();
    $time_elapsed = $cur_time - $time_ago;
    $seconds = $time_elapsed;
    $minutes = round($time_elapsed / 60);
    $hours = round($time_elapsed / 3600);
    $days = round($time_elapsed / 86400);
    $weeks = round($time_elapsed / 604800);
    $months = round($time_elapsed / 2600640);
    $years = round($time_elapsed / 31207680);
    // Seconds
    if ($seconds <= 60) {
        return "$seconds ثانیه قبل";
    }
    //Minutes
    else if ($minutes <= 60) {
        if ($minutes == 1) {
            return "یک ماه پیش";
        } else {
            return "$minutes دقیقه قبل";
        }
    }
    //Hours
    else if ($hours <= 24) {
        if ($hours == 1) {
            return "یک ساعت قبل";
        } else {
            return "$hours ساعت قبل";
        }
    }
    //Days
    else if ($days <= 7) {
        if ($days == 1) {
            return "دیروز";
        } else {
            return "$days روز قبل";
        }
    }
    //Weeks
    else if ($weeks <= 4.3) {
        if ($weeks == 1) {
            return "یک هفته پیش";
        } else {
            return "$weeks هفته پیش";
        }
    }
    //Months
    else if ($months <= 12) {
        if ($months == 1) {
            return "یک ماه پیش";
        } else {
            return "$months ماه پیش";
        }
    }
    //Years
    else {
        if ($years == 1) {
            return "یک سال پیش";
        } else {
            return "$years سال پیش";
        }
    }
}
نقل قول

در تابع بالا ما زمان رو به صورتی که با تابع time تولید شده باشه بهش میدیم و زمان رو به صورت نسبی (ago) که برای ادم قابل خوندنه به ما میده این تابع رو میتونید به صورت زیر استفاده کنید:

$time=time();
echo ago_time($time)
نقل قول

در کد بالا نحوه ی استفاده از تابعی که تعریف کرده بودیم رو نشون دادیم. کافیه که یک زمان با تابع time تولید کنیم و بهش بدیم. دوستان عزیز میتونن تاریخ های خودشون رو با استفاده از تابع time درون دیتابیس ذخیره کنن و بعدش اون رو با استفاده از تابعی که خودمون تعریف کردیم نمایش بدن تا قابل فهم باشه به همین راحتی.

نکته : اگه با جهت نمایش داده شدن تاریخ مشکل داشتید کافیه که direction اون رو عوض کنید مثلا به صورت direction:rtl بزارید تا درست بشه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...