javascript 带有REGEX表达式的.replace()在移动的上不显示,但在桌面上工作正常

bjg7j2ky  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(112)

我写了一个非常基本的JS函数来创建一个时钟。它使用一个非常基本的替换方法来将一个","更改为一个"|"符号。所需输出为" 2023年1月12日,星期四|晚上十点整。"

const refreshTime = () => {
  let t = 0;

  const timeNow = (new Date).toLocaleString('en-CA', {
    timeZone: "America/Edmonton", year: "numeric", month: "short",
    weekday: "long", day: "numeric", hour12:true, hour: "numeric",  
    minute: "2-digit", second: "2-digit"
  }).replace(/,/g, match => ++t === 3 ? ' |' : match)

  const time = document.querySelector(".time")
  time.innerHTML = `${timeNow}`
}

refreshTime()
setInterval(refreshTime, 1000)
<h2 class="time">""<h2>

正如你在the deployed site上看到的,这个时钟在标题部分工作正常,但是当你在手机上点击同一个链接时,它显示为"Thursday,Jan 12,2023at10:00:00 p.m."。
我尝试了多种移动浏览器,也尝试了在vercel上部署,结果都一样。我怎样才能确保它在移动设备上的显示效果?

aor9mmx1

aor9mmx11#

const date = new Date();
const dateString = date.toLocaleString('en-CA', {
    timeZone: "America/Edmonton", year: "numeric", month: "short",
    weekday: "long", day: "numeric"
});

const timeString = date.toLocaleString('en-CA', {
    hour: "numeric", minute: "2-digit", second: "2-digit"
});

const timeNow = `${dateString} | ${timeString}`

某些系统仍有可能显示不同的格式,在这种情况下,您需要手动创建格式,如中所述:https://stackoverflow.com/a/14638191/5798435

相关问题