صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از شماره 11 تا 18 , از مجموع 18

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

  1. #11
    عضو دائم
    تاریخ عضویت
    Sep 2012
    محل سکونت
    hetzners rack
    نوشته ها
    2,739
    تشکر تشکر کرده 
    2,675
    تشکر تشکر شده 
    6,577
    تشکر شده در
    3,502 پست

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

    pawn در چه سیستم عامل هایی نصب می شود؟ امکان استفاده از کد های دیگر زبان ها وجود ندارد؟ یا اجرای دستورات معقول که در سیستم عامل اجرا می شوند؟

  2. # ADS




     

  3. #12
    کاربر اخراج شده
    تاریخ عضویت
    Mar 2013
    نوشته ها
    69
    تشکر تشکر کرده 
    47
    تشکر تشکر شده 
    163
    تشکر شده در
    90 پست

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

    نقل قول نوشته اصلی توسط iHSG نمایش پست ها
    در این کد علامت @ قبل تابع date باعث کاهش سرعت میشه چون این علامت تا اون جا که می دونم قبل از اجرای تابع error_reporting رو برابر با 0 میکنه که اخطاری هم بود نمایش نده بعدش دوباره error_reporting رو به حالت قبل بر می گردونه سر همین موضوع اول هر تابع علامت @ بذارید سرعتش میاد پایین.
    بعدش جسارتاً برای تبدیل رشته (String) محتوی تاریخ در PHP نباید همینطوری از اون رشته مستقیم استفاده بشه بلکه باید از تابع پیش فرض PHP برای این کار یعنی strtotime استفاده بشه و بعدش خروجی این تابع strtotime رو به تابع date بدن.
    به صورت موقتاً اون کد رو گذاشتم تا الگوریتمشو پیدا کنم. بعد من Timestamp رو میخوام تبدیل کنم نه بلعکس، (توضیحات تابع: English textual datetime description into a Unix timestamp)

    نقل قول نوشته اصلی توسط lizard.tiny نمایش پست ها
    بجای request یک textarea بزار که محتوی POST کنه

    توی فایل PHP هم با یه for یا while ساده مشخص کن که کل اطلاعات رو از پست بگیره و بابت هر خط یک بار عملیات تبدیل رو انجام بده و در نهایت یک خروجی بده که همه رو تبدیل کرده
    مشکل اینه که کل اطلاعات رو ندارم، از سمت کلاینت اطلاعات میاد که همون موقع باید پردازش بشه.

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    کد 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); 
    بسیار ممنون الان تبدیلش میکنم و تستش میکنم.

    نقل قول نوشته اصلی توسط Yas-Host نمایش پست ها
    pawn در چه سیستم عامل هایی نصب می شود؟ امکان استفاده از کد های دیگر زبان ها وجود ندارد؟ یا اجرای دستورات معقول که در سیستم عامل اجرا می شوند؟
    در تمام سیستم عامل ها اجرا میشه ولی متسفانه زبان Scripting یک نرم افزار هست و دسترسی به اجرای دستورات سیستم عامل نداره.

  4. #13
    عضو انجمن lizard.tiny آواتار ها
    تاریخ عضویت
    Jul 2011
    محل سکونت
    miladworkshop.ir
    نوشته ها
    480
    تشکر تشکر کرده 
    234
    تشکر تشکر شده 
    960
    تشکر شده در
    478 پست

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

    نقل قول نوشته اصلی توسط tatserver.net نمایش پست ها

    مشکل اینه که کل اطلاعات رو ندارم، از سمت کلاینت اطلاعات میاد که همون موقع باید پردازش بشه.
    اگه از سمت کلاینت میاد و اون فایل php شبیه به یک سیستم api عمل میکنه بهتره دریافت و خروجی فایل php بصورت json یا xml باشه هم استانداردتر هست هم سرعت بهتری خواهی داشت

    در کل اصولی تر هست
    Contact Me >> Mobile : 09304443004 | Telegram ID : @miladworkshop | Email : info@miladworkshop.ir

  5. تعداد تشکر ها از lizard.tiny به دلیل پست مفید


  6. #14
    کاربر اخراج شده
    تاریخ عضویت
    Mar 2013
    نوشته ها
    69
    تشکر تشکر کرده 
    47
    تشکر تشکر شده 
    163
    تشکر شده در
    90 پست

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

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    کد 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); 
    تابعی که تبدیلش کردم به همون زبان:
    خروجی Day و Month صحیح هست ولی Year رو 46 نشون میده!
    ویرایش توسط TATSERVER.NET : September 15th, 2016 در ساعت 16:22

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

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

    کد:
     $year=1970;//Unix Epoc begins 1970-01-01
    مقدار دهی کردید ؟

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


  9. #16
    کاربر اخراج شده
    تاریخ عضویت
    Mar 2013
    نوشته ها
    69
    تشکر تشکر کرده 
    47
    تشکر تشکر شده 
    163
    تشکر شده در
    90 پست

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

    نقل قول نوشته اصلی توسط t.toosi نمایش پست ها
    کد:
     $year=1970;//unix epoc begins 1970-01-01
    مقدار دهی کردید ؟
    اوه حواسم نبوده یادم رفته
    بسیار ممنون از کمکتون، درست شد!

  10. #17
    عضو انجمن lizard.tiny آواتار ها
    تاریخ عضویت
    Jul 2011
    محل سکونت
    miladworkshop.ir
    نوشته ها
    480
    تشکر تشکر کرده 
    234
    تشکر تشکر شده 
    960
    تشکر شده در
    478 پست

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

    این رو هم یه تست بزنید : http://code.ltiny.ir/?paste=32
    ویرایش توسط lizard.tiny : September 15th, 2016 در ساعت 16:27
    Contact Me >> Mobile : 09304443004 | Telegram ID : @miladworkshop | Email : info@miladworkshop.ir

  11. تعداد تشکر ها از lizard.tiny به دلیل پست مفید


  12. #18
    کاربر اخراج شده
    تاریخ عضویت
    Mar 2013
    نوشته ها
    69
    تشکر تشکر کرده 
    47
    تشکر تشکر شده 
    163
    تشکر شده در
    90 پست

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

    نقل قول نوشته اصلی توسط lizard.tiny نمایش پست ها
    این رو هم یه تست بزنید : http://code.ltiny.ir/?paste=32
    ممنون از کمکتون ولی با اون تابعی که دوست عزیز T.Toosi ارائه دادند روی خود سیستم تبدیل رو انجام میدم.

صفحه 2 از 2 نخستنخست 12

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

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

در حال حاضر 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

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

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