/
  • مشکل در مقدار ورودی تایمر پس از اتمام زمان آن

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل در مقدار ورودی تایمر پس از اتمام زمان آن
    نویسنده پیام
    esmaelzadeh آفلاین
    عضو جدید
    **

    ارسال‌ها: 13
    تاریخ عضویت: ۱۳۹۶ تير ۲۷
    اعتبار: 0
    تشکرها : 4
    ( 1 تشکر در 1 ارسال )
    ارسال: #1
    مشکل در مقدار ورودی تایمر پس از اتمام زمان آن
    سلام دوستان وقت بخیر
    من یک مشکلی توی مبحث تایمر دارم.من یک تایمر دارم که شمارنده معکوس داره و یک ورودی زمان داره و از زمان الان تا اون زمان ورودی رو تایمر میندازه و وقتی که تایمرش تموم شد با ajax میره یکسری اطلاعات رو میگیره و توی صفحه آپدیت میکنه.در حالت کلی وقتی که صفحه لود میشه میره زمان ورودی رو از دیتابیس میخونه و همه چی درست انجام میشه.مشکل من زمانی شروع میشه که این تایمر به صفر که میرسه باید مجدد بیام بهش زمان ورودی بدم تا به صورت منفی تایمر نندازه.الان وقتی تایمر به صفر میرسه و میخواد ریست کنه باز همون زمان ورودی قبلی رو میگیره و به صورت منفی میاد تایمر میندازه.ابن رو هر کاری میتونستم کردم ولی نتونستم انجام بدم.با همون ajax زمان جدید رو از دیتابیس گرفتم به پارامترش پاس دادم ولی نشد که نشد.ممنون میشم کسی از دوستان اگر میتونه راهنمایی کنه

    کد PHP:
    تایمر رو به این صورت نشون میدم 
     
    <div id="timer" name="timer"></div>  

    زمان ورودی رو موقتاً به این صورت دارم میدم هنگام لود صفحه
     
    <input hidden="hidden" type="text" name="downtime" id="downtime" value="<?php echo $featured->downtime ?>" />

    اینم جاوا اسکریپ مورد نظر
    <script>
    var 
    countDownDate="";
    var 
    downtime=$('#downtime').val();
    countDownDate = new Date(downtime).getTime();
    var 
    setInterval(function (){

        var 
    now = new Date().getTime();

        var 
    distance countDownDate now;

        var 
    hours Math.floor((distance % (1000 60 60 24)) / (1000 60 60));
        var 
    minutes Math.floor((distance % (1000 60 60)) / (1000 60));
        var 
    seconds Math.floor((distance % (1000 60)) / 1000);

        
    document.getElementById("timer").innerHTML =hours ": "
        
    minutes ": " seconds;

        if (
    hours <=&& minutes<=&& seconds <= 0) {

        $.
    ajax({
            
    url'ajax.php',
            
    success: function(data){
                $(
    '#demo1').html(data);
                
    DownDate=html(data);
                 $(
    '#downtime').html(data);
            },
            
    error: function(){
            }
        });
        }

    }, 
    1000);

    </script> 

    اگر روش بهتری هم سراغ دارین برا انجام این کار ممنون میشم بفرمایین.کاری که می خوام کنم دقیقا مثل تایمر پیشنهاد شگفت انگیز دیجی کالا هستش که وقتی تایمرش صفر میشه و میاد ریست میکنه میره کالاهای شگفت انگیز جدید رو میاره و تایمر ریست میشه بر اساس تاریخ جدید.
    (آخرین ویرایش در این ارسال: ۱۳۹۶ مهر ۹ ۰۲:۲۰ صبح، توسط esmaelzadeh.)
    ۱۳۹۶ مهر ۹ ۰۲:۱۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    esmaelzadeh آفلاین
    عضو جدید
    **

    ارسال‌ها: 13
    تاریخ عضویت: ۱۳۹۶ تير ۲۷
    اعتبار: 0
    تشکرها : 4
    ( 1 تشکر در 1 ارسال )
    ارسال: #2
    RE: مشکل در مقدار ورودی تایمر پس از اتمام زمان آن
    حالا اصلا یک کار دیگه کنیم مثلا دیگه نیاد ورودی زمان رو از دیتابیس بگیره بیایم تایمر رو طوری تنظیم کنیم که خودش شروع کنه از 12 شب 24 ساعت کانتر بندازه و زمانی که به صفر رسید یعنی 12 شب فرداش مجدد ریست بشه و 24 ساعت کانتر بندازه.این کار رو چطور میشه انجام داد؟
    ۱۳۹۶ مهر ۱۲ ۰۷:۲۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    esmaelzadeh آفلاین
    عضو جدید
    **

    ارسال‌ها: 13
    تاریخ عضویت: ۱۳۹۶ تير ۲۷
    اعتبار: 0
    تشکرها : 4
    ( 1 تشکر در 1 ارسال )
    ارسال: #3
    RE: مشکل در مقدار ورودی تایمر پس از اتمام زمان آن
    اینطوری حلش کردم

    کد PHP:
    <script>
    var 
    countDownDate="";
    var 
    DownDate="";
    function 
    faeture_timer(){
    var 
    counter setInterval(function (){
        
    DownDate=$('#downtime').val();
        
    countDownDate = new Date(DownDate).getTime();
        var 
    now = new Date().getTime();

        var 
    distance countDownDate now;

        var 
    hours Math.floor((distance % (1000 60 60 24)) / (1000 60 60));
        var 
    minutes Math.floor((distance % (1000 60 60)) / (1000 60));
        var 
    seconds Math.floor((distance % (1000 60)) / 1000);

        
    document.getElementById("timer").innerHTML =hours ": "
        
    minutes ": " seconds;

         if (
    hours <=&& minutes<=&& seconds <= 0) {

        $.
    ajax({
            
    url'ajax.php',
            
    success: function(data){
                
    clearInterval(counter);

                $(
    '#feauter').html(data);

                 $(
    '#downtime').val(data);
                
    setTimeout(faeture_timer,1000);
            },
            
    error: function(){
            }
        });
        }


    }, 
    1000);
    }
      
    faeture_timer();
    </script> 
    ۱۳۹۶ مهر ۱۲ ۰۹:۱۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS