如何去掉JS生成的日期字符串中的秒数,显示为MM/DD/YYYY, HH:MM AM/PM格式
你可以直接给toLocaleString()方法传入配置参数来精准控制输出格式,不需要手动切割字符串,适配性更强:
<p style="font-family:verdana"><span id="datetime"></span></p> <script> var dt = new Date(); document.getElementById("datetime").innerHTML = dt.toLocaleString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', hour12: true }); </script>
之前用slice方法失效的核心原因是,不同浏览器、不同系统区域设置下,toLocaleString()的默认返回格式差异很大,固定位置切割很容易出现格式错乱,用API自带的格式化参数没有这类问题。
各配置项作用说明:
month: '2-digit'输出两位数字的月份,不足10月自动补前导0day: '2-digit'输出两位数字的日期,不足10日自动补前导0year: 'numeric'输出四位完整年份hour: '2-digit'输出两位数字的小时minute: '2-digit'输出两位数字的分钟,不需要显示秒的话不用添加second相关配置即可hour12: true开启12小时制,自动追加AM/PM标识
如果需要兼容IE8及以下的极端老旧浏览器,才需要手动拼接各日期字段实现需求,现代浏览器全量支持上述配置方法。
内容的提问来源于stack exchange,提问作者DaConnz
相关产品推荐
相关产品推荐

