0

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

?>
4

1 回答 1

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;
    }
}

如果 right now 小于 startDate,则价格为 1500。
如果 right now 大于 endDate,则价格为 1000
如果 right now 介于两者之间,则计算

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

Demo使用2012 07 10 - $1500 -> 2012 07 15 $1000所以处于计算阶段

于 2012-07-13T12:47:59.663 回答