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

問題は、jquery.countdown 関数を満たす C# で日付を生成するにはどうすればよいかということだと思います。

4

2 に答える 2

3

javascriptで変数に日付を割り当てるときは、次を使用する必要があります。

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

これまでのやり方では、変数には日付ではなく文字列が含まれています。したがって、これらの2行を置き換えるだけで、機能するはずです。

于 2011-01-27T09:42:36.650 に答える
1

JavaSript が Date を 1970/01/01 からのミリ秒単位で保持しているという事実を利用できます。これをコードビハインドに入れます:

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 に答える