0

残念ながら、私は jQuery/JavaScript の第一人者ではなく、問題に悩まされています。

要するに、いくつかの固定アイテムの価格が 2 つの日付の間で分単位で下がるイベントが発生します。

例えば:

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

そして私の問題は、これをリアルタイムのカウントダウンにするためにどこから始めればよいかさえわからないことです. 価格のみを表示する必要があります。ヘルプ、ポインター、代替案は大きな助けになります。

返信のおかげで、解決策を作成することができました。悲しいことに、Esailja が提供した純粋な 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;
    }
}

現在がstartDate未満の場合、価格は1500です。
現在がendDateを超えている場合、価格は1000です。
現在がその間の場合、計算されます。

デモ: http://jsfiddle.net/5v4yh/1/

デモで使う2012 07 10 - $1500 -> 2012 07 15 $1000ので計算段階

于 2012-07-13T12:47:59.663 に答える