0

有没有人有在 asp.net 中使用 jquery.countdown 的经验?

在我后面的代码中,我设置了这样的日期

public string datostreng;
protected void Page_Load(object sender, EventArgs e)
{
    string format = "ddd MMM d yyyy HH:mm:ss";
    DateTime _tempdato = DateTime.Now.AddDays(1);
    datostreng = _tempdato.ToString(format);
}

在 .aspx 页面上,我有

<script type="text/javascript">
    $(function () {
        var dato = new Date();
        dato = '<%=datostreng %>';
        $('#defaultCountdown').countdown({ until: dato, format: 'HMS' });
        //alert(dato);
    });

计数器显示正常,但它从 34 分 56 秒开始倒计时,很奇怪。在我的示例中,它应该从 24 小时开始倒计时。

在原始 jquery.countdown 示例中,它们的日期格式如下:Thu Jan 26 2012 00:00:00 GMT+0100

在我的示例中,它看起来像这样:fr jan 28 2011 09:50:43

所以,我想问题是,如何在 C# 中生成满足 jquery.countdown 函数的日期?

4

2 回答 2

3

当您在javascript中为变量分配日期时,您需要使用:

var dato = new Date('<%=datostreng%>');

按照您的操作方式,您的变量包含一个字符串,而不是日期。所以只需替换这两行,它应该可以工作。

于 2011-01-27T09:42:36.650 回答
1

您可以利用以下事实,即 JavaSript 自 1970/01/01 以来将 Date 保存为毫秒。把它放在你的代码后面:

private static DateTime _jsDateBoundary = new DateTime(1970, 1, 1, 0, 0, 0);
public Int64 GetCountdownMilliseconds()
{
  DateTime countdownDeadline = DateTime.Now.AddDays(1).ToUniversalTime();
  return (Int64)countdownDeadline.Subtract(_jsDateBoundary).TotalMilliseconds;
}

在 .aspx 页面上放这个:

$(document).ready(function () {
    $('#defaultCountdown').countdown({ until: new Date(<%= GetCountdownMilliseconds() %>), format: 'HMS' }); 
});

它会起作用的。

于 2011-01-27T10:14:42.873 回答