然后我想到使用ajax请求每秒自动刷新。 function loadXMLDoc(){ var xmlht-6ren">
gpt4 book ai didi

javascript - 如何将responseText值转换为整数?

转载 作者:行者123 更新时间:2023-12-02 15:21:20 25 4
gpt4 key购买 nike

我有一个 php 脚本,可以计算两个日期之间的差异。

<?php
$date1="2015-11-30 07:57:00";
$date2=date('Y-m-d H:i:s');

$diff=abs(strtotime($date2)-strtotime($date1));
echo "<h1 style=\"color:red;\">".$diff."</h1>";
?>

然后我想到使用ajax请求每秒自动刷新。

function loadXMLDoc(){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var totalsec=xmlhttp.responseText;
document.getElementById("ajaxDiv").innerHTML = totalsec;
}
}
xmlhttp.open("GET","dif_btw_dates.php",true);
xmlhttp.send();
}
setInterval("loadXMLDoc()",1000);

现在我想计算totalsec值来确定分钟数、小时数和天数。但是当我尝试对 totalsec 进行任何数学运算时,例如

var minutes=totalsec /60;

我收到 NaN 错误。如何将responseText值转换为整数以便我可以进行数学运算?谢谢。

最佳答案

这里的主要问题是您正在尝试解析 <h1 style="color:red;">123123</h1>变成一个数字。另外,正如 @LGSon 所指出的那样,你不应该在这里每秒进行一次ajax调用。

为了解决这个问题,我会从服务器发回两个日期,它可能看起来像这样:

PHP:

<?php
$date1="2015-11-30 07:57:00";
$date2=date('Y-m-d H:i:s');
echo $date1 . "," . $date2;
?>

HTML:

<div id="ajaxDiv">
<h1></h1>
</div>

CSS:

#ajaxDiv > h1{
color: red;
}

和 JS:

var date,
timezoneOffset;

function loadXMLDoc(){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var dates = xmlhttp.responseText.split(",");
timezoneOffset = Math.round((new Date() - new Date(dates[1]))/3600000);
date = new Date(dates[0]);
}
}
xmlhttp.open("GET","dif_btw_dates.php",true);
xmlhttp.send();
}

function updateTime(){
if( date === undefined ) return;
var date2 = new Date();
date2.setHours(date2.getHours() - timezoneOffset);
var totalsec = (date2 - date) / 1000;

/* Here totalsec is a number and you can do your other operations like
var minutes=totalsec /60; */

var ajaxDiv = document.getElementById("ajaxDiv");
var h1 = ajaxDiv.getElementsByTagName("h1")[0];
h1.innerHTML = totalsec;

}

loadXMLDoc();
setInterval(loadXMLDoc, 3600000); //Sync with server time once an hour
setInterval(updateTime, 1000);

关于javascript - 如何将responseText值转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com