نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: نمایش تاریخ انتشار نوشته به شکل "10 دقیقه پیش"

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jul 2014
    نوشته ها
    199
    تشکر تشکر کرده 
    118
    تشکر تشکر شده 
    75
    تشکر شده در
    70 پست

    Question نمایش تاریخ انتشار نوشته به شکل "10 دقیقه پیش"

    سلام و درود

    تابعی رو نیاز دارم که تاریخ انتشار پست رو به شکل مثلا "n ثانیه پیش" ، "n دقیقه پیش" ، "n ساعت پیش" ، "n روز پیش" ، "n هفته پیش" ، "n ماه پیش" و "n سال پیش" نشون بده.

    فقط یه موردی هست وقتی پست وارد دقیقه شد دیگه ثانیه اش رو نشون نده یا پست وارد روز شد دیگه ساعت و دقیقه و ثانیه اش رو نشون نده الی آخر.

    تشکر

  2. # ADS




     

  3. #2
    عضو جدید realAmir آواتار ها
    تاریخ عضویت
    Feb 2017
    نوشته ها
    17
    تشکر تشکر کرده 
    1
    تشکر تشکر شده 
    25
    تشکر شده در
    12 پست

    پیش فرض پاسخ : نمایش تاریخ انتشار نوشته به شکل "10 دقیقه پیش"

    میتونید با چند عملیات ریاضی و تابع round در PHP این کار رو انجام بدید.
    به این شکل که تاریخ فعلی (این لحظه) رو از تاریخ مورد نظر کم میکنید و با تابع round به مقیاس ثانیه واحد مورد نظر (مثلا دقیقه برابر 60، یا ساعت برابر 3600) رند میکنید و با چند if این ها رو به حروف تبدیل میکنید.
    این تابع خلاصه و انجام شده چیزی هستش که گفتم:
    کد PHP:
    <?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 رو در کد باید تعریف کنید که برابر تاریخ مبدا هستش)
    کد PHP:
    echo ago_time($time); 
    ویرایش توسط realAmir : June 12th, 2017 در ساعت 10:48

  4. تعداد تشکر ها ازrealAmir به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 0
    آخرين نوشته: June 21st, 2016, 05:20
  2. پاسخ ها: 0
    آخرين نوشته: November 18th, 2013, 00:32
  3. پاسخ ها: 8
    آخرين نوشته: April 9th, 2013, 22:12
  4. پاسخ ها: 16
    آخرين نوشته: December 3rd, 2011, 19:33

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •