我的表格有3列:FileName
,LastUpdateTime
和重启按钮。
仅当上次更新时间超过20分钟时才需要显示重启按钮。我从服务器获取最后一次更新时间。 d = new Date()
给出本地浏览器时间,但lastUpdateTime来自服务器。服务器位于与客户端浏览器不同的时区。
如果服务器和浏览器位于同一时区,则以下代码有效。如果服务器和浏览器位于不同的时区,您对如何解决这个问题有任何建议吗?
此应用程序应该在美国和欧洲的任何地方运行。
var lastUpdatedTime = (gridData[i].LastTimeUpdated);
var d = new Date();
//deducting 20 min from current time
var deductTwenty = d.setMinutes(d.getMinutes() - 20);
var parsedupdatetime = Date.parse(lastUpdatedTime);
// If the last update time is not 20 ago, hide it.
if (parsedupdatetime > deductTwenty) {
newrestartButton.hide();
}
答案 0 :(得分:0)
可能出现的问题是服务器日期解析。看看Date.parse function spec - 并确保您的服务器返回的内容将像ISO8601格式的日期一样正确解析。
答案 1 :(得分:0)
在.cshtml文件中使用.NET获取日期服务器端。假设你使用MVC(因为你标记了这个问题kendo-asp.net-mvc)。
@{
var deductTwenty = DateTime.Now.AddMinutes(-20);
}
<script>
var jsDeductTwenty = new Date(@deductTwenty.Year, @deductTwenty.Month-1, @deductTwenty.Day, @deductTwenty.Hour, @deductTwenty.Minute);
</script>
结果:
答案 2 :(得分:0)
您必须使用客户端时区转换ImageButton imgbtn = new ImageButton();
imgbtn.Height = 25;
imgbtn.CssClass = "light";
imgbtn.ID = "led";
imgbtn.OnClientClick = "Turnon('" + "www.google.com" + "');";
form1.Controls.Add(imgbtn); //
,这意味着您应该在用20分钟减去日期时将服务器时间转换为客户端时间。您可以使用momentjs,moment-timezone和jstimezonedetect来实现此目标。
您的代码应该是这样的
lastUpdatedTime
希望得到这个帮助。