PDA

View Full Version : آموزش: شمارش معکوس بر اساس زمان دیتابیس



فرزند کوروش
جمعه 27 دی 1392, 12:00 عصر
سلام. این کد رو تازه نوشتم (البته کامل نیست ) گفتم بزارم اینجا شاید بقیه دوستان هم به همچین چیزی نیاز پیدا کنن. کارکرد این تیکه کد بیشتر برای سایتهای تخفیف گروهی هست که نیاز دارن شمارش معکوس برای کالاها شون بزارن . زمان رو از دیتابیس بهش بدین و هر موقع که سایت لود شد زمان باقیمانده رو بهتون نشون میده

<?php
$rem = strtotime('2015-08-01 14:00:00') - time(); //// زمان پایان ، این رو از دیتابیس میتونید وارد کنید
?>

<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').attr('aria-time');
var updateTime = eval(seconds)- eval(1);
day = Math.floor( updateTime / 86400);
hr = Math.floor(updateTime % 86400 / 3600);
minn = Math.floor(updateTime % 3600/ 60);
sec = Math.floor(updateTime % 60);
allTime = day+"روز و"+hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
$('div#timer').html(allTime);
$('div#timer').attr('aria-time',updateTime);
}, 1000);

});
</script>





<div id="timer" dir="rtl" aria-time="<?php echo $rem ?>"></div>

Yashar1989
جمعه 27 دی 1392, 17:53 عصر
هیچ اتفاقی نمیوفته
فقط همون تاریخ رو بر اساس ثانیه نشون میده
تگ جاوا اسکریپت هم تو کدهایی که گذاشتی نبستی

فرزند کوروش
جمعه 27 دی 1392, 18:01 عصر
شما کتابخونه جی کوئری داخل برنامت وارد کردی؟
تگ بسته جاوا اسکریپت هم اضافه شد :D


فقط همون تاریخ رو بر اساس ثانیه نشون میده

اینو نفهمیدم؟؟!

Yashar1989
جمعه 27 دی 1392, 21:56 عصر
شما کتابخونه جی کوئری داخل برنامت وارد کردی؟
تگ بسته جاوا اسکریپت هم اضافه شد :D

اینو نفهمیدم؟؟!
منظورم اینه که اصلاً تبدیل نمیکنه و همون خروجی php رو نشون میده تو مقدار aria-time نشون میده
کتابخونه جی کوئری رو اضافه کردم چیزی نشون نداد

فرزند کوروش
شنبه 28 دی 1392, 08:36 صبح
ینی شما حتی روز ماه و سال هم نمیبینی؟؟
خیلی عجیبه چون من دارم الان از همین ساختار استفاده میکنم ضمن اینکه این کد رو تست کردم و مشکلی نداشت ، کل کد رو با هم میزارم استفاده کن ببین هنوز مشکل داره یا نه!!


<?php $rem = strtotime('2015-08-01 14:00:00') - time(); ?>
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').attr('aria-time');
var updateTime = eval(seconds)- eval(1);
day = Math.floor( updateTime / 86400);
hr = Math.floor(updateTime % 86400 / 3600);
minn = Math.floor(updateTime % 3600/ 60);
sec = Math.floor(updateTime % 60);
allTime = day+"روز و"+hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
$('div#timer').html(allTime);
$('div#timer').attr('aria-time',updateTime);
}, 1000);

});
</script>
<div id="timer" dir="rtl" aria-time="<?php echo $rem ?>"></div>

Yashar1989
شنبه 28 دی 1392, 10:20 صبح
همون کد رو استفاده میکنم

<?php $rem = strtotime('2015-08-01 14:00:00') - time(); ?>
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').attr('aria-time');
var updateTime = eval(seconds)- eval(1);
day = Math.floor( updateTime / 86400);
hr = Math.floor(updateTime % 86400 / 3600);
minn = Math.floor(updateTime % 3600/ 60);
sec = Math.floor(updateTime % 60);
allTime = day+"روز و"+hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
$('div#timer').html(allTime);
$('div#timer').attr('aria-time',updateTime);
}, 1000);

});
</script>
<div id="timer" dir="rtl" aria-time="<?php echo $rem ?>"></div>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>

اما هیچی نشون نمیده

فرزند کوروش
شنبه 28 دی 1392, 11:26 صبح
کتابخونه جی کوئری رو بالای صفحت اینکلود کن نه زیر



<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<?php $rem = strtotime('2015-08-01 14:00:00') - time(); ?>
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').attr('aria-time');
var updateTime = eval(seconds)- eval(1);
day = Math.floor( updateTime / 86400);
hr = Math.floor(updateTime % 86400 / 3600);
minn = Math.floor(updateTime % 3600/ 60);
sec = Math.floor(updateTime % 60);
allTime = day+"روز و"+hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
$('div#timer').html(allTime);
$('div#timer').attr('aria-time',updateTime);
}, 1000);

});
</script>
<div id="timer" dir="rtl" aria-time="<?php echo $rem ?>"></div>

Yashar1989
شنبه 28 دی 1392, 11:58 صبح
ممنون از پاسخ و کد

یه سوال
اگر تاریخ مورد نظر کمتر از یک روز باشه میزنه
0 روز و x ساعت و....
اگر بخواهیم تاریخ 0 رو نشون نده چیکار باید کنیم؟
فقط بزنه:
x ساعت و ...

فرزند کوروش
شنبه 28 دی 1392, 12:58 عصر
میتونی یه شرط تعریف کنی که اگر day برابر 0 بود نشونش نده

Yashar1989
شنبه 28 دی 1392, 13:55 عصر
دستوراتش شبیه php هست؟

فرزند کوروش
شنبه 28 دی 1392, 14:05 عصر
نه تغییراتش توی جاوا اسکریپت باید اعمال بشه. نمونه



<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<?php $rem = strtotime('2015-08-01 14:00:00') - time(); ?>
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function() {
var seconds = $('div#timer').attr('aria-time');
var updateTime = eval(seconds)- eval(1);
day = Math.floor( updateTime / 86400);
hr = Math.floor(updateTime % 86400 / 3600);
minn = Math.floor(updateTime % 3600/ 60);
sec = Math.floor(updateTime % 60);
if(day != 0){
allTime = day+"روز و"+hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
}else{
allTime = hr+"ساعت و"+minn+"دقیقه و"+sec+"ثانیه";
}
$('div#timer').html(allTime);
$('div#timer').attr('aria-time',updateTime);
}, 1000);

});
</script>
<div id="timer" dir="rtl" aria-time="<?php echo $rem ?>"></div>

Yashar1989
شنبه 28 دی 1392, 14:27 عصر
ممنون از پاسخت
میدونم توی جاوا اسکریپت باید if و else رو میورد
سوالم این بود که دستورات if و else در جاوا مثل php هست یا نه که با گذاشتن کد به پاسخ رسیدم

باز هم ممنون

saeedfadaoddini
دوشنبه 21 مهر 1393, 22:02 عصر
من می خوام توسط یک فرمی که درست کردم کاربر بیاد زمان شمسی رو انتخاب کنه بعد این زمان رو تبدیل کنه به میلادی بعد در صفحه نشون بدم که انتقد زمان مونده تا زمان انتخابی شما به پایان برسه لطفا راهنمایی کنید
اینم ادرس چیزی که درست کردم
http://ghaased.ir/m/wordpress/

فرزند کوروش
سه شنبه 22 مهر 1393, 06:59 صبح
شما میخای وقتی کاربر فرم رو ارسال کرد و در دیتابیس وارد شد رمان نشون داده بشه؟
یا اینکه همون لحطه ای که تاریخ انتخاب شد؟