【问题标题】:Countdown timer from a date (Date is loaded from database)日期倒数计时器(日期从数据库加载)
【发布时间】:2018-08-05 12:58:47
【问题描述】:

我想知道是否有一种方法可以在不使用 jquery ajax 的情况下从日期创建倒数计时器?我对javascript和一些c#略知一二。如果有帮助的话,我有 Visual Studio 2017 AJAX Extension 的工具。

我想实时显示从日期开始倒计时的倒计时(页面的部分刷新)。

我知道我必须使用更新面板和脚本管理器。但是 c# 代码本身是什么?我是否将其存储在会话变量中?

计时器在页面加载时启动。

【问题讨论】:

  • 我从未做过,但我认为您可以使用纯 JavaScript 在页面上创建计时器。如果您知道日期,您可以在 js 中对所有内容进行硬编码并完成。 (顺便说一句,你想要一个计时器from 一个日期还是to 一个日期?)如果你必须从数据库中获取日期,那完成了吗?分解问题并开始寻找每个部分的答案。我相信这里的每个部分都得到了回答。
  • 我需要计时器是基于服务器的。还是一样?我想要从日期开始倒计时。例如,距离 x 日期还有“24 小时”。

标签: asp.net ajax countdown


【解决方案1】:

作为基础,您可以这样做

DateTime dt = new DateTime(2018, 08, 10); // your date from the db.
TimeSpan dt2 = dt.Subtract(DateTime.Now);
// add the time remaining to a label.
lblDateDiff.Text = "Time's up in "
    + dt2.Days.ToString() + " days, "
    + dt2.Hours.ToString() + " hours, "
    + dt2.Minutes.ToString() + " minutes "
    + dt2.Seconds.ToString() + " seconds.";

它不会像计时器那样倒计时,但如果它在 Page_Load 上,它会在每次加载时刷新。

如果 JS 是一个选项,您可以将日期添加到页面并使用 moment.js 库:https://momentjs.com/docs/#/displaying/tonow/

对于计时器,我不确定,但我怀疑您是否可以使用代码隐藏来实现,除非您使用的是 polling 机制,例如 SignalR。 JS 的 setInterval() 是最简单的。

【讨论】:

  • 帮助太大了!谢谢你。是的,我想在页面后面的代码中执行此操作并将其放入 label.Text 中。但问题是我不知道如何将 JS 实现到页面后面的代码中。我如何在 setInterval() 中实现上面的代码?
  • 如果答案有帮助,请点赞并开始一个新问题。
猜你喜欢
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 2022-11-28
相关资源
最近更新 更多