使用jquery.countdown.js + Asp.net调用serverTime时无法获得正确的时间?

时间:2010-04-09 14:49:32

标签: c# asp.net

    

<script type="text/javascript" src="Scripts/jquery-1.3.2.js"></script>

<script type="text/javascript" src="Scripts/jquery.countdown.js"></script>

<script type="text/javascript">
    $(function() {
        var shortly = new Date('April 9, 2010 22:38:10');
        var newTime = new Date('April 9, 2010 22:38:10');
        //for loop divid
        /// 
        $('#defaultCountdown').countdown({
            until: shortly, onExpiry: liftOff, onTick: watchCountdown, serverSync: serverTime
        });
        $('#div1').countdown({ until: newTime });
    });

    function serverTime() {
        var time = null;
        $.ajax({
            type: "POST",
            //Page Name (in which the method should be called) and method name
            url: "Default.aspx/GetTime",
            // If you want to pass parameter or data to server side function you can try line
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: "{}",
            async: false,
            //else If you don't want to pass any value to server side function leave the data to blank line below
            //data: "{}",  
            success: function(msg) {
                //Got the response from server and render to the client

                time = new Date(msg.d);
                alert(time);
            },
            error: function(msg) {
                time = new Date();
                alert('1');
            }
        });

        return time;

    }
    function watchCountdown() { }
    function liftOff() { }

</script>

              
         

 [WebMethod]
public static String GetTime()
{
    DateTime dt = new DateTime();  
   dt = Convert.ToDateTime("April 9, 2010 22:38:10");

    return dt.ToString("dddd, dd MMMM yyyy HH:mm:ss");
}

1 个答案:

答案 0 :(得分:0)

回程在回调前开火;你必须使用回调来设置一些值。在成功或失败的回调中,您需要将日期传递给HTML元素或分配全局变量。

HTH。