javascript - 在 JavaScript 中显示当前日期和时间

标签 javascript date

我有这个脚本来在我的网页中显示当前日期和时间:

<script type = "text/javascript">

function startTime() {
var now = new Date();
var h=now.getHours();
var min=now.getMinutes();
var s=now.getSeconds();
var ampm=(now.getHours()>11)?"PM":"AM";
var d=now.getDay();
var y=now.getFullYear();
var mon=now.getMonth();
var da=now.getDate();
var endings=["st","nd","rd","th"];
var dayendings=[0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,2,3,4,4,4,4,4,4,1];
var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var months=["January","February","March","April", "May", "June","July","August","September", "October", "Novemeber","Decemeber"];
if (h>12) {h-=12}
if (h==0) {h=12};
if (min<10) {min="0"+min}
if (s<10) {s="0"+s}
da+=endings[dayendings[da]];
if (da<10) {da="0"+da};
d=days[d];
mon=months[mon-1];
document.getElementById("time").innerHTML=d+", "+mon+" "+da+", "+y+" "+h+":"+min+":"+s+" "+ampm;
var tim = setTimeout("startTime()",1000);
}

</script>

但是结果是这样的:

Friday, April NaN, 2012 6:37:36 PM

如何使 April NaN, 2012 正确?必须是今天的日期,即 2012 年 5 月 25 日

最佳答案

至少你应该改变

da+=endings[dayendings[da]];

da+=endings[dayendings[da - 1]];

因为现在它有一个相差一的错误(da 是 1 到 31,但 dayendings 上的索引是 0 到 30)。

如果“今天”是本月 31 日,这应该会立即解决您的问题。

还需要修复 dayendings 中的值,因为 4 在那里没有意义。

顺便说一句,您确实应该放弃此代码 something better 。难道你不喜欢这样吗?

function startTime() {
    document.getElementById("time").innerHTML =
        moment().format("dddd, MMMM Do, YYYY h:mm:ss A");
}

关于javascript - 在 JavaScript 中显示当前日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752972/

相关文章:

javascript - res.render 仅在多个数据查询完成后

javascript - 这个jquery文件有错误吗?

javascript - 在 JavaScript 中插入或更新对象

javascript - 当我在 $scope 中设置数据时,在 bootstrap 模式上获取数据时遇到 angularJs 中的问题

javascript - Rails 在生产页面加载中复制 Assets ?

php - 选择日期大于当前日期的每个用户最近日期的行

java - 如何检查Java中的日期是否大于另一个日期?

javascript - 高级日期范围计算,不包括周末和节假日

Postgresql - 将导入时的 csv 时间和日期合并到时间戳

java - android 将字符串解析为日期 - 错误的日期