推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Livid
403.84D
562.95D

关于网页上的时间渲染

  •  
  •   Livid ·
    PRO
    · Apr 3, 2022 · 5666 views
    This topic created in 1676 days ago, the information mentioned may be changed or developed.

    输入:

    Unix Timestamp

    输出:

    根据用户 Locale 设置渲染不同的结果,比如 Apr 2, 2022 或者 2022 年 4 月 2 日


    上面这样的需求有可能不用任何第三方库,就只用 Vanilla JS 实现么?

    12 replies  •  2022-04-03 20:48:58 +08:00
    Cbdy
    Cbdy
    Apr 3, 2022
    1
    new Date().toLocaleString('sv', { hour12: false, timeZone: 'Asia/Shanghai' })
    DrakeXiang
    DrakeXiang
    Apr 3, 2022
    2
    loading
    loading
    Apr 3, 2022
    3
    重点应该是得到正确的 locale ,目前我只想到用 navigator.language
    loading
    loading
    Apr 3, 2022
    4
    可以参考这个纯粹的时钟网站:

    https://time.is/
    Cbdy
    Cbdy
    Apr 3, 2022❤️1
    5
    @loading navigator.language 这个非常不准
    learningman
    learningman
    Apr 3, 2022❤️2
    6
    https://flyhigher.top/develop/2482.html
    昨天看到的一篇谈这个的文章,讲的挺好的
    mxT52CRuqR6o5
    mxT52CRuqR6o5
    Apr 3, 2022❤️1
    7
    new Date().toLocaleDateString(undefined,{dateStyle:'medium'})
    我这边测下来用 dateStyle:'medium'中英文都是符合要求的
    Date.prototype.toLocaleString
    Date.prototype.toLocaleDateString
    Intl.DateTimeFormat
    应该都可以接收这个参数
    dawniii
    dawniii
    Apr 3, 2022
    8
    locale 和 language 都是系统可修改的吧,无所谓准不准,按用户的设置来。
    @loading @Cbdy
    Cbdy
    Cbdy
    Apr 3, 2022 via Android
    9
    @dawniii 我是指浏览器不准,比如中文系统,中文语言设置的 Firefox 获取的 language 是 en
    duanxianze
    duanxianze
    Apr 3, 2022
    10
    如果你想获取用户的时区,那最好的当然是定位权限,当然定位也不一定准,但只要不是用户刻意虚拟定位,显然确定时区还是没问题的,用户不给,就按 ip 来
    os7blue
    os7blue
    Apr 3, 2022
    11
    如果只是展示:
    其实你如果用标准的 yyyy-MM-dd hh:mm:ss 用阿拉伯数字,世界通用的,不要去在乎语言问题,根据用户自己的设置做转换就行了,如果用户的设置造成的问题,那不是你的错。你顶多给个提醒就仁至义尽了。
    如果对时间有安全需要:
    你可以后端一并返回时间戳和地区信息,或者自己做一个授时服务,判断时间区间就行了,使网页上的时钟信息独立于本机。
    如果用户使用了代理导致你获取的定位信息不对,那不是你该考虑的问题,你只要保证自己的服务相关时间戳就行了。
    bnm965321
    bnm965321
    Apr 3, 2022
    12
    2 楼说的 Intl 是 web 标准的 i18n 方式
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1574 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    ♥ Do have faith in what you're doing.