如何使用js与我的服务器日期和时间

时间:2010-05-27 21:35:20

标签: javascript asp-classic

我希望将服务器时间和日期设置为新日期 我试过这个:

   dateNow = new Date("<%=now()%>");

但这不起作用 我怎么能这样做?

这是给我问题的代码...... 它只是在时间差异上得到堆栈而不是倒计时

<script type="text/javascript">
dateFuture = new Date(<%=year(privatesellstartdate)%>,<%=month(privatesellstartdate)-1%>,<%=day(privatesellstartdate)%>,<%=hour(privatesellstarttime)%>,<%=minute(privatesellstarttime)%>,00);

function GetCount(){
dateNow = new Date(<%=year(date())%>,<%=month(date())-1%>,<%=day(date())%>,<%=hour(time())%>,<%=minute(time())%>,00);               //grab current date
    amount = dateFuture.getTime() - dateNow.getTime();      //calc milliseconds between dates
    delete dateNow;

    // time is already past
    if(amount < 0){
        document.getElementById('countbox').innerHTML="Now!";
}
    // date is still good
    else{
        days=0;hours=0;mins=0;secs=0;out="";

        amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

        days=Math.floor(amount/86400);//days
        amount=amount%86400;

        hours=Math.floor(amount/3600);//hours
        amount=amount%3600;

        mins=Math.floor(amount/60);//minutes
        amount=amount%60;

        secs=Math.floor(amount);//seconds

        if(days != 0){out += days +":";}
        if(days != 0 || hours != 0){out += hours +":";}
        if(days != 0 || hours != 0 || mins != 0){out += mins +":";}
        out += ((secs>=10)?secs:"0"+secs) ;
        document.getElementById('countbox').innerHTML=out;

        setTimeout("GetCount()", 1000);
    }
}
window.onload=GetCount;//call when everything has loaded

</script>

3 个答案:

答案 0 :(得分:1)

VBScript的Now返回日期和时间,如:

5/27/2010 6:06:39 PM 

JavaScript的Date()构造函数不喜欢该特定格式。从字符串中随时间实例化JavaScript日期需要时间为24h格式。看起来你正试图在你粘贴的代码中正确拼凑它。不知道为什么不起作用。

我的问题是为什么在客户端进行日期比较呢? VBScript's DateDiff会在服务器端为您处理这个问题:

var seconds = <%= DateDiff("s", Now, privatesellstartdate) %>;

if (seconds > 0) {
  var days = <%= DateDiff("d", Now, privatesellstartdate) %>;

  var hours = <%= DateDiff("h", Now, privatesellstartdate) %>;

  var minutes = <%= DateDiff("n", Now, privatesellstartdate) %>;

  // Your logic here.
}

答案 1 :(得分:0)

我不使用ASP但是查看http://www.w3schools.com/js/js_obj_date.asp JavaScript需要特定格式的日期。检查那里的样本,您应该能够以正确的格式在ASP中检索日期。

答案 2 :(得分:0)

请注意,或者我应该说注意,因为您的服务器和与之联系的网络浏览器可能位于不同的时区。因此,当您在服务器上创建日期字符串并设置一些Javascript以使用相同的字符串创建客户端日期时,实际日期/时间将意味着不同的东西到服务器和客户端。也许这就是你想要的,也许不是;这取决于应用程序。

我猜这不是一个真正的答案; @Alistair是正确的,因为本机Javascript Date对象的语法非常有限。我并不是要向你推一个框架,但你可能会看一下“datejs”库(http://www.datejs.com/),看看如果你用日期/时间值做很多事情,它是否会有所帮助。