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

时间:2012-07-13 12:32:57

标签: javascript jquery countdown

可悲的是,我不是一个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;
}

?>

1 个答案:

答案 0 :(得分:1)

得到这样的价格:

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/

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