我的按钮显示为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天到期。
帮助。
答案 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>