如何使用PHP和jQuery动态设置按钮的到期时间?

时间:2015-05-27 06:37:39

标签: php jquery datetime

我的按钮显示为Accept,并且从创建时起仅对72 HOURS有效,而在过去72时,应该会自动停用<span>中的消息。< / p>

PHP:

这是我收集变量的时间

$original_datetime = new DateTime($_item['updated_at']);
$expire_time = $original_datetime->modify("+72 hours");

HTML:

<input type="button" id="acceptBtn" value="<?php echo $this->__('Accept') ?>" 
data-created-at="<?php echo $original_datetime->format("d-M-Y H:i:s"); ?>" 
data-expiring-at="<?php echo $expire_time->format("d-M-Y H:i:s"); ?>" ><br>
<span id="expired_message"></span>

的jQuery

jQuery(document).ready(function ($) {
    disableAcceptButton();
}
function disableAcceptButton() {
    setTimeout(function () {
        jQuery("#acceptBtn").prop("disabled", true).hide();
        jQuery("#expired_message").text('Sorry, time expired, if you wish to buy/sell this Product again, Contact Admin via Email');
    }, 10000);
}

而不是10000,即10秒,这应该在创建后3天到期。

帮助。

1 个答案:

答案 0 :(得分:1)

实际上你不能用jQuery setTimeout()函数做到这一点,你需要比它更稳定的东西

你可以用JS脚本块中的PHP来做这个:

<script>
<?php
$current_time = time();
//connect to db 
// check if there is no expire timestamp in db
if($thereIsNoTimestampInDB){
  $expire_time = $current_time + (24 * 60 * 60 * 3); // increase 3 days to timestamp
//save timestamp to database 
}else{
//get Timestamp from DB and save it to $expire_time
if($expire_time > $current_time){
echo "var expired=true;\n";
}else{
echo "var expired=false;\n";
}
}
?>
</script>
然后用JS:

<script>
if(expired){
$("#Button").html('Sorry Button Expired, Please Contact Admin');
}
</script>