jQuery与日期相关的价格倒计时

jQuery Price Countdown in relation to dates

本文关键字:倒计时 日期 jQuery      更新时间:2023-09-26

遗憾的是,我不是jQuery/JavaScript大师,我遇到了一个问题。

简言之,在两次约会之间,一些固定物品的价格会一分钟一分钟地下跌。

例如:

2012 07 25 - $1500 -> 2012 08 01 - $1000

我的问题是,我甚至不知道从哪里开始把它变成实时倒计时。只需要显示价格即可。任何帮助、指示、替代方案都将是巨大的帮助。

多亏了回复,我才得以创建一个解决方案。遗憾的是,Esailija提供的纯JS版本不想工作,但基于此,我能够为此创建一个php/ajax解决方案。是的,我知道这会给服务器带来压力,但JS版本显示了一组全新的数字,这些数字没有在范围内定义,但使用相同公式的php产生了有效的结果。下面你可以找到完整的php代码。

<?php
$dateStart = strtotime("16 july 2012 00:00");
$dateEnd = strtotime("18 july 2012 9:30");
$curDate = strtotime("now");
$startPrice = 3628000;
$endPrice = 3499000;
$progress = ($curDate - $dateStart) / ($dateEnd - $dateStart);
$curPrice = $startPrice - ($startPrice-$endPrice) * $progress;
$curPrice = round($curPrice);
if ($dateStart > $curDate) {
   echo $startPrice;
} elseif ($curDate >= $dateEnd) {
   echo $endPrice;
} else {
   echo $curPrice;
}
?>

获取如下价格:

function getPrice() {
    var startDate = Date.UTC(2012,06,25,0,0,0,0),
        endDate = Date.UTC(2012,07,01,0,0,0,0),
        startPrice = 1500,
        endPrice = 1000,
        rightNow = +new Date,
        progress,
        price;
    progress = ( rightNow - startDate ) / ( endDate - startDate );
    if( progress < 0 ) {
        price = startPrice;
    }
    else if( progress >= 1) {
        price = endPrice;
    }
    else {
        price = startPrice - Math.abs(startPrice-endPrice) * progress;
    }
}

如果现在小于startDate,则价格为1500。
如果现在大于endDate,则价格为1000
如果现在介于之间,则计算

演示:http://jsfiddle.net/5v4yh/1/

Demo使用2012 07 10 - $1500 -> 2012 07 15 $1000,因此处于计算阶段