首页 编程语言 php

php毫秒时间戳常用倒计时代码,配合前端js使用

思路:

1、php计算出倒计时时间戳

2、js展示倒计时日期格式

具体代码如下:

<?php
// 注意:php的时间是以秒算。js的时间以毫秒算
// 设置时区
date_default_timezone_set('PRC');
//配置每天的活动时间段
$starttimestr = date('Y-m-d H:i:s', strtotime(date('Y-m-d')));
$endtimestr = date('Y-m-d H:i:s', strtotime(date('Y-m-d', strtotime('+1 day'))));
$starttime = strtotime($starttimestr);
$endtime = strtotime($endtimestr);
$nowtime = time();
if ($nowtime < $starttime) {
    exit("活动还没开始,活动时间是:{$starttimestr}至{$endtimestr}");
}
if ($endtime >= $nowtime) {
    $lefttime = $endtime - $nowtime; //实际剩下的时间(秒)
} else {
    $lefttime = 0;
    exit("活动已经结束!");
}
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>PHP+JS活动秒杀倒计时原理</title>
    </head>
    <body>
        <h1>活动开始时间:<?php echo $starttimestr ?></h1>
        <h1>活动结束时间:<?php echo $endtimestr ?></h1>
        <h4>距离活动结束还有 <strong id="RemainD"></strong><strong id="RemainH"></strong>小时
            <strong id="RemainM"></strong>分钟
            <strong id="RemainS"></strong>.<strong id="RemainL"></strong></h4>

        <script>
            var runtimes = 0;
            function GetRTime() {
                var lefttime = <?php echo $lefttime; ?> * 1000 - runtimes * 1000;
                if (lefttime >= 0) {
                    var nD = Math.floor(lefttime / (1000 * 60 * 60 * 24)) % 24;
                    var nH = Math.floor(lefttime / (1000 * 60 * 60)) % 24;
                    var nM = Math.floor(lefttime / (1000 * 60)) % 60;
                    var nS = Math.floor(lefttime / 1000) % 60;
                    document.getElementById("RemainD").innerHTML = nD;
                    document.getElementById("RemainH").innerHTML = nH;
                    document.getElementById("RemainM").innerHTML = nM;
                    document.getElementById("RemainS").innerHTML = nS;
                    if (lefttime == 5 * 60 * 1000) {
                        alert("还有最后五分钟!");
                    }
                    runtimes++;
                    setTimeout("GetRTime()", 1000);
                } else {
                    alert('活动结束了!');
                    location.reload();
                }
            }
            var Num = 0;
            onload = function() {
                Refresh();
                setInterval("Refresh();", 100);
                GetRTime();
            }
            function Refresh() {
                if (Num < 10) {
                    document.getElementById("RemainL").innerHTML = Num;
                    Num = Num + 1;
                } else {
                    Num = 0;
                }
            }
        </script>
    </body>
</html>


模拟活动开始时间为程序运行当天,结束时间为第二日凌晨



相关推荐