如何在JS/HTML中移除时间输出中的GMT及后续时区后缀信息
解决方案
你可以直接对日期字符串做截断处理,或者手动拼接日期字段实现需求,两种修改方案如下:
方案1:字符串拆分法(最简单)
直接将原始日期字符串按GMT关键词拆分,取前半部分即可,同时注意PHP输出的Unix时间戳是秒级,JS的Date对象需要毫秒级时间戳,要做单位转换:
var timestamp = '<?=time();?>'; function updateTime() { // 转换为标准Date对象,秒转毫秒 const currentDate = new Date(Number(timestamp) * 1000); // 拆分字符串移除GMT及后续时区内容 const showTime = currentDate.toString().split(' GMT')[0]; $('#time').html(showTime); timestamp++; } $(function() { setInterval(updateTime, 1000); });
HTML部分不需要修改,和你原来的代码一致即可。
方案2:手动拼接字段(兼容性最好)
不同浏览器的Date.toString()输出格式可能存在细微差异,手动拼接日期字段可以保证所有环境下输出格式完全统一:
var timestamp = '<?=time();?>'; // 预定义周、月缩写映射 const weekAbbr = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; const monthAbbr = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; function updateTime() { const currentDate = new Date(Number(timestamp) * 1000); // 补全前导零 const fillZero = num => String(num).padStart(2, '0'); const showTime = `${weekAbbr[currentDate.getDay()]} ${monthAbbr[currentDate.getMonth()]} ${fillZero(currentDate.getDate())} ${currentDate.getFullYear()} ${fillZero(currentDate.getHours())}:${fillZero(currentDate.getMinutes())}:${fillZero(currentDate.getSeconds())}`; $('#time').html(showTime); timestamp++; } $(function() { setInterval(updateTime, 1000); });
两种方案最终输出的格式都是你需要的Wed Oct 27 2021 00:26:01格式,不会携带GMT和时区相关内容。
内容的提问来源于stack exchange,提问作者God of data
相关产品推荐
相关产品推荐

