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

موضوع: تبدیل Timestamp به Readable Time

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #10
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : تبدیل Timestamp به Readable Time

    کد PHP:
    $t=time();
    /*
     * Transform a Unix Timestamp to ISO 8601 Date format YYYY-MM-DD 
     * @param unix timestamp
     * @return Returns a formated date (YYYY-MM-DD) or false
     */
    function unixToIso8601($timestamp){
        if(
    $timestamp<0){return false;}//Do not accept negative values
        /* Too many constants, add this to a class to speed things up. */
        
    $year=1970;//Unix Epoc begins 1970-01-01
        
    $dayInSeconds=86400;//60secs*60mins*24hours
        
    $daysInYear=365;//Non Leap Year
        
    $daysInLYear=$daysInYear+1;//Leap year
        
    $days=(int)($timestamp/$dayInSeconds);//Days passed since UNIX Epoc
        
    $tmpDays=$days+1;//If passed (timestamp < $dayInSeconds), it will return 0, so add 1
        
    $monthsInDays=array();//Months will be in here ***Taken from the PHP source code***
        
    $month=11;//This will be the returned MONTH NUMBER.
        
    $day;//This will be the returned day number. 

        
    while($tmpDays>=$daysInYear){//Start adding years to 1970
            
    $year++;
            if(
    isLeap($year)){
                
    $tmpDays-=$daysInLYear;
            }
            else{
                
    $tmpDays-=$daysInYear;
            }
        }

        if(
    isLeap($year)){//The year is a leap year
            
    $tmpDays--;//Remove the extra day
            
    $monthsInDays=array(-1,30,59,90,120,151,181,212,243,273,304,334);
        }
        else{
            
    $monthsInDays=array(0,31,59,90,120,151,181,212,243,273,304,334);
        }

        while(
    $month>0){
            if(
    $tmpDays>$monthsInDays[$month]){
                break;
    //$month+1 is now the month number.
            
    }
            
    $month--;
        }
        
    $day=$tmpDays-$monthsInDays[$month];//Setup the date
        
    $month++;//Increment by one to give the accurate month

        
    return $year.'-'.(($month<10)?'0'.$month:$month).'-'.(($day<10)?'0'.$day:$day);
    }
    function 
    isLeap($y){
        return ((
    $y)%4==0&&(($y)%100!=0||($y)%400==0));
    }
    echo 
    unixToIso8601($t); 

  2. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


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

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

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

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

  1. Invalid timestamp
    توسط meysamsh در انجمن سوالات و مشکلات
    پاسخ ها: 0
    آخرين نوشته: August 27th, 2017, 10:07
  2. آموزش محاسبه زمان از روی timestamp
    توسط omid1991 در انجمن PHP-MySQL
    پاسخ ها: 3
    آخرين نوشته: June 1st, 2017, 00:13
  3. پاسخ ها: 0
    آخرين نوشته: June 1st, 2017, 00:10
  4. درخواست | نمایش TimeStamp به صورت شمسی
    توسط matori73 در انجمن PHP-MySQL
    پاسخ ها: 0
    آخرين نوشته: February 3rd, 2015, 07:10
  5. پاسخ ها: 0
    آخرين نوشته: February 19th, 2012, 22:20

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

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