当前位置:编程学习 > C#/ASP.NET >>

B2C订单结算时间的问题,求大神看看



如图,这个是本机的订单结算倒计时完全没问题




这个是服务器的倒计时完全没作用

HTML代码(服务器和本机都是一样的)

JS倒计时 服务器时间 订单 --------------------编程问答-------------------- 你把这个代码画出来有鸟用,得把js代码弄出来看才行。。。。。 --------------------编程问答-------------------- 然后呢 ?~~~~ --------------------编程问答-------------------- js代码没有上传? --------------------编程问答-------------------- 回收一下服务器缓存!!!? --------------------编程问答--------------------
引用 1 楼 foren_whb 的回复:
你把这个代码画出来有鸟用,得把js代码弄出来看才行。。。。。


JS代码就是普通 的倒计时

$(function () {   
    setTimeout("show_time()", 1000);
});

function show_time() {

    var start = $("#start").val();
    var end = $("#end").val();
//    alert(start);
//    alert(end);
    var time_now_server, time_now_client, time_end, time_server_client, timerID;

    time_end = new Date(end); //结束的时间
    time_end = time_end.getTime();

    time_now_server = new Date(start); //开始的时间
    time_now_server = time_now_server.getTime();
    time_now_client = new Date(); //当前时间
    time_now_client = time_now_client.getTime();

    time_server_client =time_now_server- time_now_client;
    var timer = document.getElementById("timer");

    if (!timer) {
        return;
    }
    timer.innerHTML = time_server_client;

    var time_now, time_distance, str_time;
    var int_day, int_hour, int_minute, int_second;
    var time_now = new Date();


    time_now = time_now.getTime();
    time_distance = time_end - time_now;

    if (time_distance > 0) {
        int_day = Math.floor(time_distance / 86400000)
        time_distance -= int_day * 86400000;
        int_hour = Math.floor(time_distance / 3600000)
        time_distance -= int_hour * 3600000;
        int_minute = Math.floor(time_distance / 60000)
        time_distance -= int_minute * 60000;
        int_second = Math.floor(time_distance / 1000)

        if (int_hour < 10)
            int_hour = "0" + int_hour;
        if (int_minute < 10)
            int_minute = "0" + int_minute;
        if (int_second < 10)
            int_second = "0" + int_second;

        if (int_hour == "00" && int_minute == "00" && int_second == "00") {
            $("#payUrl").attr("href", '');//移除支付链接
            clearTimeout(timerID);
            str_time = "00小时00分00秒";
        } else {
            str_time = int_hour + "小时" + int_minute + "分" + int_second + "秒";
            setTimeout("show_time()", 1000);
        }

        timer.innerHTML = str_time;

    } else {
        str_time = "00小时00分00秒";
        alert("活动已经结束!");
        timer.innerHTML = str_time;
    }
    
};
--------------------编程问答--------------------
引用 3 楼 a271083650 的回复:
js代码没有上传?


上传了,跟服务器缓存好像没关系吧 --------------------编程问答--------------------

你问对人了,说白了,就是微软的日期时间格式与JS的不兼容搞成的,给你个参考吧:

<asp:HiddenField ID="HF_StartTime" runat="server" Value="" />
    <asp:HiddenField ID="HF_EndTime" runat="server" Value="" />
    <asp:HiddenField ID="HF_ThisTime" runat="server" Value="" />
<script type="text/javascript">
var showTime;
   var startTime=new Date(Date.parse(document.getElementById("<%= HF_StartTime.ClientID %>").value.replace(/-/g,"/")));
   var endTime=new Date(Date.parse(document.getElementById("<%= HF_EndTime.ClientID %>").value.replace(/-/g,"/")));
   var nowTime=new Date(Date.parse(document.getElementById("<%= HF_ThisTime.ClientID %>").value.replace(/-/g,"/")));
   var diffTime;
   var d=0;
   var h;
   var m;
   var s;
   var strResult="";
   var objSpan=document.getElementById("Spa_Result");
//显示抽奖剩余时间
function ShowTimeForGamge()
{
   if(document.getElementById("<%= HF_HasOver.ClientID %>").value=="1")
   {
      //游戏结束
      if(showTime!=null) clearInterval(showTime);
      return;
   }
   nowTime.setSeconds(nowTime.getSeconds()+1);
   if(startTime>nowTime)
   {
      //还未开始
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,