【发布时间】:2021-07-29 11:43:39
【问题描述】:
我有这段代码可以让我在 js 中从 12 小时到 24 小时,反之亦然。这里是:
setInterval( function() {
var time = new Date();
var twelveTime = time.toLocaleString('en-UK', { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: true });
var normalTime = time.toLocaleString('en-UK', { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false });
if ($("#timeCheck").is(":checked")) $("#time").html(twelveTime);
else $("#time").html(normalTime);
/* Save 12 or 24 */
setInterval(function saveTimeMode() {
var checkbox = document.getElementById("timeCheck");
localStorage.setItem("timeCheck", checkbox.checked);
}, 0);
var checked = JSON.parse(localStorage.getItem("timeCheck"));
document.getElementById("timeCheck").checked = checked;
}, 50);
但问题是,当它是 12 小时制并且是 12:00 PM 时,它会显示为 00:00。我该如何改变这个。它也必须在 LocalString 中,否则我的代码将无法工作。谢谢
【问题讨论】:
-
en-UK可能无效,应该是en-GB- 但不要认为它会有所作为! -
所以每毫秒你将复选框状态写入本地存储??
-
哇哇哇哇...你打电话给
setInterval(..., 0)insidesetInterval(..., 50)?????停止!如果您想在localStorage中保存复选框的状态,只需将其设置在change事件中! -
无论如何,看起来英国语言环境使用
00 AM和00 PM分别表示午夜和中午。如果你想要12 AM午夜和12 PM中午(坦率地说,这对我来说完全没有意义......)然后使用'en-US',因为他们会做所有这样奇怪的约会。 -
@NiettheDarkAbsol 在
change事件中设置它是什么意思?没有其他选择对我有用吗?谢谢
标签: javascript time