new Date返回NaN或从服务器日期()开始的错误时间

new Date return NaN or a wrong time starting from server date()

本文关键字:开始 时间 错误 日期 服务器 返回 Date NaN new      更新时间:2023-10-06

我试图在启动时获取服务器时间并更新它,因为我必须实时地调用一些元素。问题是,如果我的serverTime没有t,那么firefox和IE上的时间是NaN,但如果我在chrome和IE上用t代替空白,我的时间就错了。

我现在用T代替空白的工作很糟糕,但我没有时间了:)

感谢大家

启动时:

$tmpTime = date("Y-m-d H:i:s");

头:

<script>
var serverTime = '<?=$tmpTime?>';
serverTime = serverTime.replace(" ", "T");
</script>

脚本:

setInterval(function () {
    console.log(serverTime);
    var tmpTime = new Date(serverTime);
    console.log(tmpTime);
    var t = tmpTime.getTime();
    t = t + 1000;
    tmpTime = new Date(t);
    serverTime = t;
    if (tmpTime.getMinutes() < 10) {
        var minutes = "0" + tmpTime.getMinutes();
    } else {
        var minutes = tmpTime.getMinutes();
    };
    newTime = tmpTime.getHours() + ":" + minutes;
    $('#liveTime').text(newTime);
    if ($("#program li[time-id='" + newTime + "'][class='alert']").length !== 0) {
        alert("Lo streaming da te programmato sta per iniziare!");
        $("#program li[time-id='" + newTime + "'][class='alert']").removeClass("alert");
    }
    titleToShow();
}, 1000);

function titleToShow() {
    $("#program li").each(function () {
        var prevTime = $(this).prev("li").attr("time-id");
        var thisTime = $(this).attr("time-id");
        var nextTime = $(this).next("li").attr("time-id");
        currentTime = Date.parse('01/01/2011 ' + newTime);
        prevTime = Date.parse('01/01/2011 ' + prevTime);
        nextTime = Date.parse('01/01/2011 ' + nextTime);
        thisTimeNew = Date.parse('01/01/2011 ' + thisTime);
        if (currentTime >= thisTimeNew && currentTime < nextTime && currentTime > prevTime) {
            title = $(this).find("p").text();
            if (title != $("p#playingTitle").text()) {
                $("p#playingTitle").text(title);
            }
        }
    })
}

不要使用格式的日期,只需将Unix时间戳值传递给脚本(不要忘记将其乘以1000,因为JS使用毫秒)。

var serverTime = <?php echo time(); ?>;
var tmpTime = new Date(serverTime * 1000);