ASP.NET c# JS实现团购,竞标倒计时实现

调用

 1     <div class="Orange" id="Orange"></div>                      
 2     <script language="JavaScript">
 3         function forasp_cn_date() {
 4             var datego = "<%=StaticFunction.ToStrDateTime(task.EndDate, Estatic.ForDateTime.类型八)%>"; //2018-10-09 21:35:28
 5             var datetemp = (datego.replace(/:| /g, "-")).split("-"); //对日期进行分割
 6             var datego_u = (new Date(Date.UTC(datetemp[0], datetemp[1] - 1, datetemp[2], datetemp[3] - 8, datetemp[4], datetemp[5]))).getTime() / 1000;
 7             //将日期转换为日期戳
 8             var now_u = Math.round((new Date()).valueOf() / 1000);
 9             //现在的日期戳去除了毫秒
10             var forasp_cn = datego_u - now_u;
11             //获取日期差,从而计算倒计时时间www-fo-a-sp.cn
12             var day = Math.floor(forasp_cn / (24 * 3600));
13             //计算倒计时的天数差。
14             var hour = Math.floor((forasp_cn - day * 24 * 3600) / 3600);
15             //计算倒计时的小诗差
16             var minter = Math.floor((forasp_cn - day * 24 * 3600 - hour * 3600) / 60);
17             ///计算倒计时的分钟差
18             var secound = (forasp_cn - day * 24 * 3600 - hour * 3600 - minter * 60);
19             //计算秒差
20             document.getElementById("Orange").innerHTML = ("<b>" + day + "</b> 天 <b>" + hour + "</b> 时 <b>" + minter + "</b> 分 <b>" + secound + "</b> 秒");
21         }
22         setInterval(forasp_cn_date, 1000);
23 </script>
24     <%} %>

效果

需要定义时间“类型八”

        /// <summary>
        /// DateTime?格式化,如何DateTime?为null返回Empty
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public static string ToStrDateTime(this DateTime? dt,DealMvc.Estatic.ForDateTime _ForDateTime)
        {
            string val = string.Empty;
            string format = string.Empty;
            switch(_ForDateTime)
            {
                case DealMvc.Estatic.ForDateTime.类型一:
                format = "yyyy-MM-dd HH:mm";
                break;
                case DealMvc.Estatic.ForDateTime.类型二:
                format = "yyyy-MM-dd";
                break;
                case DealMvc.Estatic.ForDateTime.类型三:
                format = "yyyy年MM月dd日 HH时mm分";
                break;
                case DealMvc.Estatic.ForDateTime.类型四:
                format = "yyyy年MM月dd日";
                break;
                case DealMvc.Estatic.ForDateTime.类型五:
                format = "yy-MM-dd HH:mm";
                break;
                case DealMvc.Estatic.ForDateTime.类型六:
                format = "MM-dd HH:mm";
                break;
                case DealMvc.Estatic.ForDateTime.类型七:
                format = "MM-dd";
                break;
                case DealMvc.Estatic.ForDateTime.类型八:
                format = "yyyy-MM-dd HH:mm:ss";
                break;
            }

            try { val = ((DateTime)dt).ToString(format,System.Globalization.DateTimeFormatInfo.InvariantInfo); }
            catch { }
            return val;
        }
    public static class Estatic
    {
        #region pulic
        /// <summary>
        /// 时间格式
        /// </summary>
        public enum ForDateTime
        {
            /// <summary>
            /// 2011-10-10 10:23
            /// </summary>
            类型一 = 1,
            /// <summary>
            /// 2011-12-23
            /// </summary>
            类型二,
            /// <summary>
            /// 2011年12月23日 10时20分
            /// </summary>
            类型三,
            /// <summary>
            /// 2011年12月23日
            /// </summary>
            类型四,
            /// <summary>
            /// 11-10-10 10:23
            /// </summary>
            类型五,
            /// <summary>
            /// 10-10 10:23
            /// </summary>
            类型六,
            /// <summary>
            /// 10-10
            /// </summary>
            类型七,
            /// <summary>
            /// 2011-10-10 10:23:50
            /// </summary>
            类型八
        }
        #endregion
    }
原文地址:https://www.cnblogs.com/dany/p/3014486.html