我的问题是这样的,
Tday[BB] = new Date("{$group_buy.end_time}");   
返回的值是Tday[BB] = new Date("1304668800");
这个日期格式是不能执行倒数的,
请问如果将 1304668800 转换成 ('M d, Y H:i:s')再来倒数呢?
程序不是我写的,所以只能从javascript 入手<script type="text/javascript">
var BB = new Array();
var Tday = new Array();
var daysms = 24 * 60 * 60 * 1000
var hoursms = 60 * 60 * 1000
var Secondms = 60 * 1000
var microsecond = 1000
var DifferHour = -1
var DifferMinute = -1
var DifferSecond = -1
function clock(BB)
  {
   var time = new Date()
   var hour = time.getHours()
   var minute = time.getMinutes()
   var second = time.getSeconds()
   var timevalue = ""+((hour > 12) ? hour-12:hour)
   timevalue +=((minute < 10) ? ":0":":")+minute
   timevalue +=((second < 10) ? ":0":":")+second
   timevalue +=((hour >12 ) ? " PM":" AM")
   var convertHour = DifferHour
   var convertMinute = DifferMinute
   var convertSecond = DifferSecond
   var Diffms = Tday[BB].getTime() - time.getTime()
   DifferHour = Math.floor(Diffms / daysms)
   Diffms -= DifferHour * daysms
   DifferMinute = Math.floor(Diffms / hoursms)
   Diffms -= DifferMinute * hoursms
   DifferSecond = Math.floor(Diffms / Secondms)
   Diffms -= DifferSecond * Secondms
   var dSecs = Math.floor(Diffms / microsecond)
   
   if(convertHour != DifferHour) a="<font color=red>"+DifferHour+"</font>天";
   if(convertMinute != DifferMinute) b="<font color=red>"+DifferMinute+"</font>时";
   if(convertSecond != DifferSecond) c="<font color=red>"+DifferSecond+"</font>分"
     d="<font color=red>"+dSecs+"</font>秒"
     if (DifferHour>0) {a=a} 
     else {a=''}
   document.getElementById("leftTime"+BB).innerHTML = a + b + c + d; //显示倒计时信息
  
  }
</script>
<p class="time">距离结束:<em><span class="time" id="leftTime{$group.group_id}">{$lang.please_waiting}</span>
</em></p><script type="text/javascript">
BB="{$group.group_id}"
Tday[BB] = new Date("{$group_buy.end_time}");   
window.setInterval(function()     
{clock(BB);}, 1000);   
  
</script>

解决方案 »

  1.   

    Date对象:Date对象的属性和方法:
    Date对象在使用前,必须先使用new指定实例化一个变量,然后才可以用该变量调用相关函数.我们使用
    string函数时,需把字符串放在一个变量,才能对这个字符串变量使用string函数,同样,我们Date对象
    函数的使用,也必须把一个时期放在一个变量中,也就是对象实例化语法:
    var myDate=new Date();//获取当前时期放到变量中.
    var myDate=new Date(年,月,日);//获取指定年月日放入变量中,其它的时分秒均为0
    var myDate=new Date(年,月,日,时,分,秒);
    myDate.函数(); getYear();获取年
    getMonth();获取月
    getDate();获取当前月第几日
    getDay();获取星期几
    getHours();//获取小时
    getMinutes();//获取分钟
    getSeconds();//获取秒
    getTime();//获取毫秒getYear()方法获得年份
    实例
    var date=new Date();
    alert(date.getYear());getMonth()方法获得月份.
    实例:
    var date=new Date();
    alert(date.getMonth());
    注意:1月至12月所对应的值分别为0至11. getDate()方法
    获取当日号数
    实例:
    var date=new Date();
    alert(date.getDate()); 输出年月日:
    var newYMD=new Date(),newYear,newMonth,newDate;
    newYear=newYMD.getYear();
    newMonth=newYMD.getMonth()+1;
    newDate=newYMD.getDate();
    alert(newYear+"年"+newMonth+"月"+newDate+"日"); getDay()方法
    说明:获取星期几
    实例:
    var myDate=new Date();
    var day=myDate.getDay();
    注意:星期日至星期六所对应的值分别为0至6那么我们可以用switch case 进程转换var newYMD=new Date(),newYear,newMonth,newDate,newDay;
    newYear=newYMD.getYear();
    newMonth=newYMD.getMonth()+1;
    newDate=newYMD.getDate();
    newDay=newYMD.getDay();
    switch(newDay){
     case 0:newDay="星期天";break;
     case 1:newDay="星期一";break;
     case 2:newDay="星期二";break;
     case 3:newDay="星期三";break;
     case 4:newDay="星期四";break;
     case 5:newDay="星期五";break;
     case 6:newDay="星期六";break;
    }
    alert(newYear+"年"+newMonth+"月"+newDate+"日"+newDay); getHours()方法
    一、返回小时。
    二、实例:
    var myDate = new Date(2006, 6, 10, 14, 16, 20);
    var hours = myDate .getHours();getMinutes()方法一、返回分钟数。
    二、实例:
    var myDate = new Date(2006, 6, 10, 14, 16, 20);
    var minutes = myDate .getMinutes();getSeconds()方法一、返回分钟数。
    二、实例:
    var myDate = new Date(2006, 6, 10, 14, 16, 20);
    var seconds = myDate .getSeconds(); 得到年月日时分秒:var newYMD=new Date(),newYear,newMonth,newDate,newDay,newHours,newMinute,newSecond;
    newYear=newYMD.getYear();
    newMonth=newYMD.getMonth()+1;
    newDate=newYMD.getDate();
    newDay=newYMD.getDay();
    switch(newDay){
     case 0:newDay="星期天";break;
     case 1:newDay="星期一";break;
     case 2:newDay="星期二";break;
     case 3:newDay="星期三";break;
     case 4:newDay="星期四";break;
     case 5:newDay="星期五";break;
     case 6:newDay="星期六";break;
     default:alert("系统出错");break;
    }
    newHours=newYMD.getHours();
    newMinute=newYMD.getMinutes();
    newSecond=newYMD.getSeconds();
    alert(newYear+"年"+newMonth+"月"+newDate+"日"+newDay+" -- "+newHours+"点"+newMinute+"分"+newSecond+"秒"); getTime()方法
    返回从1970年1月1号到当前时间以来所积累的毫秒总数实例:计算两个时间相差的天数:
    var beginDate=new Date(2009,1,1).getTime();//这里的1代表2月
    var endDate=new Date(2009,1,28).getTime();
    var day=((endDate-beginDate)/1000/60/60/24);
    //相减得到两个时间相差的毫秒数,除以1000得到相差毫秒数,除以60得到相差的分钟,再除以60得到相差的小时,最后除以24得到天数
      

  2.   


    var ts=1304668800;//直接用1304668800去计算倒计时即可,不必转换成日期格式了
    var days = parseInt(ts/(1000 * 3600 * 24));//还剩下多少天
    ts = ts - (days * 1000 * 3600 * 24);//减去天数,然后再计算余数有多少个小时
    var hours = parseInt(ts/(1000 * 3600));//还剩下多少小时
    ts = ts - (hours * 1000 * 3600);//减去小时数
    var minutes = parseInt(ts/(1000 * 60));//剩下多少分
    ts = ts - minutes * 1000 * 60;//减去分
    var seconds = parseInt(ts/1000);//剩下多少秒
      

  3.   

    问题已解决,
    1.将var Diffms = Tday[BB].getTime() - time.getTime()
    改为:var Diffms = Tday[BB- time.getTime()2.将Tday[BB] = new Date("{$group_buy.end_time}"); 
    改为:Tday[BB] = {$group_buy.end_time};