V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Get Google Chrome
Vimium · 在 Chrome 里使用 vim 快捷键
wxiao333
V2EX  ›  Chrome

chrome 浏览器重大更新? BUG?该怎么办

  •  
  •   wxiao333 · 2021-01-28 15:16:56 +08:00 · 2658 次点击
    这是一个创建于 1424 天前的主题,其中的信息可能已经有所发展或是发生改变。

    赶紧自查下你们的系统有没有崩?

    今天中午有客户反映我们的产品,页面上所有关于时间日期查询的功能全部无法使用,刚才查出来,只有部分客户升级了最新的 chrome 版本 88.0.4324.104 (正式版本)之后出现了这种现场,于是我也进行了升级。 升级后果然关于时间的页面都出了问题,看上去肯定是前端的原因,查代码后发现,前端写的获取日期时间字符串的方法是

    new Date().toLocaleString('zh', { hour12: false })
    

    chrome 更新前的结果是

    "2021/1/28 15:03:50"
    

    chrome 更新后变成了

    "2021/1/2815:03:50"
    

    少掉的这一个空格导致我们系统所有跟时间日期选择相关的控件,跟后端的接口 全部挂掉。。。

    由于之前的前端是转行过来的可能不太专业,没有使用时间戳,导致现在出现这样的局面,我们的系统现在前前后后有十几个版本,部署在上百台服务器上(版本各不相同),更新工作量巨大。请教各位有经验的大神这算是 chrome 的 bug 么,下一个版本会把这个改回来么?

    13 条回复    2021-03-05 13:43:28 +08:00
    IsaacYoung
        1
    IsaacYoung  
       2021-01-28 15:24:06 +08:00
    你这个时间获取的方式不太合适吧 不是有一对 get 方法吗
    easonHHH
        2
    easonHHH  
       2021-01-28 15:32:11 +08:00
    用 moment.js 格式化时间?.....
    yamedie
        3
    yamedie  
       2021-01-28 15:34:13 +08:00
    用 moment.js 或 Intl.DateTimeFormat
    wangxiaoaer
        4
    wangxiaoaer  
       2021-01-28 15:34:29 +08:00
    1 我觉得是 bug

    2 你们明显太不专业了,不要把锅全部甩给前端,接口调用的时候日期格式怎么能用 localstring 这种?用户换个地区不照样挂?这是设计的锅。

    3 尝试给 chrome 提 issue 试试看。
    luofeii
        5
    luofeii  
       2021-01-28 16:19:17 +08:00
    重写一下 Date.prototype.toLocaleString 方法

    var one = new Date().toLocaleString;
    var day = new Date().getDate();
    var month = new Date().getMonth() + 1;

    Date.prototype.toLocaleString = function(y, z){
    var str = one.call(this, y, z);
    // todo 这里判断一下 str 是否正常
    var reg = new RegExp(`\/[0-9]+\/${day}`)
    return str.replace(reg, '/' + month + '/'+ day+' ');
    }

    console.log(new Date().toLocaleString('zh', { hour12: false }))
    wxiao333
        6
    wxiao333  
    OP
       2021-01-28 16:22:10 +08:00
    @wangxiaoaer 谢谢建议,确实是我们不够专业,现在在修改了。
    wxiao333
        7
    wxiao333  
    OP
       2021-01-28 16:22:29 +08:00
    @luofeii 很好的办法,改动比较少,感谢
    ShinichiYao
        8
    ShinichiYao  
       2021-01-28 16:23:56 +08:00
    Chrome 88 版大更新造成我一堆 ftp 连接废掉找谁说理去
    dswyzx
        9
    dswyzx  
       2021-01-28 16:25:20 +08:00 via iPhone
    原生 js 的方法还有这风险,学到了
    12101111
        10
    12101111  
       2021-01-28 16:34:18 +08:00
    Firefox 也是这样,日期和时间之间没有空格,应该是 icu 68.2 的 bug
    easylee
        12
    easylee  
       2021-01-28 16:50:05 +08:00
    对字里行间透露出来的数落很是头疼......
    bclerdx
        13
    bclerdx  
       2021-03-05 13:43:28 +08:00 via Android
    @easylee 人家适当数落一下,也是很正常的吧。这样才能知道问题在哪里,以后要避免。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2663 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:24 · PVG 15:24 · LAX 23:24 · JFK 02:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.