![](/img/trans.png)
[英]Countdown timer until product sale ends on WooCommerce single product page
[英]use woocommerce get_date_on_sale_to() in javascript countdown timer
我在javascript倒數計時器中使用woocommerce get_date_on_sale_to()有問題。 我的代碼是:
<script>
var countDownDate = new Date(<?php echo $product->get_date_on_sale_to(); ?>).getTime();
var x = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("demo").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
}, 1000);
</script>
我認為這行是無效的:
var countDownDate = new Date(<?php echo $product->get_date_on_sale_to(); ?>).getTime();
此代碼的輸出<?php echo $product->get_date_on_sale_to(); ?>
<?php echo $product->get_date_on_sale_to(); ?>
是"2018-01-25T00:00:00-01:00"
但我的下場計時器顯示: NaN d NaN h NaN m NaN s
如何解決它?
您首先需要從字符串中提取Date
,例如:
//You'll get date in milliseconds since 1970/01/01, so don't need to use getTime()
var countDownDate = Date.parse(<?php echo $product->get_date_on_sale_to(); ?>);
有關Date.parse
更多信息可以在這里找到。
另外,這里var distance = countDownDate - now;
您得到負數,請嘗試:
var distance = now - countDownDate;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.