JavaScript获取指定格式当前日期时间:文本框无显示问题求助
问题原因及修正方案
导致文本框无内容的核心问题:
input元素不支持onload事件
input标签没有onload事件属性,你写的onload="getDate()"根本不会触发函数执行。月份索引错误
date.getMonth()返回0(一月)到11(十二月),你用了months[(date.getMonth()+1)],这会导致十二月时索引变成12,超出数组长度(数组索引仅0-11),直接得到undefined。星期数组语法错误+索引不匹配
星期数组里"Saturday"后面少了逗号,导致"Saturday"和"Sunday"被合并成一个字符串,数组实际只有6个元素;另外date.getDay()返回0(周日)到6(周六),你的数组第一个元素是Monday,对应索引0,但date.getDay()=0是周日,顺序完全不匹配。格式缺失&拼接错误
代码里没获取日期的日部分(比如示例里的7),各部分之间也没加空格,会导致内容乱连在一起,同时小时和分钟是个位数时不会补零(比如9点会显示成9而不是09)。
修正后的完整代码
JavaScript部分
function updateDateTime() { const date = new Date(); const months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; const days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; // 获取日、补零处理小时和分钟 const dayOfMonth = date.getDate(); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); // 拼接成目标格式 const formattedDateTime = `${dayOfMonth} ${months[date.getMonth()]} ${date.getFullYear()} ${days[date.getDay()]} ${hours}:${minutes}`; document.getElementById("dateandtime").value = formattedDateTime; } // 页面加载完成后立即执行 window.onload = updateDateTime; // 设置每日自动更新(一天的毫秒数:24*60*60*1000) setInterval(updateDateTime, 24 * 60 * 60 * 1000);
HTML部分
Current Date and Time: <br/> <input type="text" id="dateandtime" name="dateandtime" readonly> <br/><br/>
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

