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

2021-01-28 15:16:56 +08:00
 wxiao333

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

今天中午有客户反映我们的产品,页面上所有关于时间日期查询的功能全部无法使用,刚才查出来,只有部分客户升级了最新的 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 么,下一个版本会把这个改回来么?

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

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

3 尝试给 chrome 提 issue 试试看。
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
2021-01-28 16:22:10 +08:00
@wangxiaoaer 谢谢建议,确实是我们不够专业,现在在修改了。
wxiao333
2021-01-28 16:22:29 +08:00
@luofeii 很好的办法,改动比较少,感谢
ShinichiYao
2021-01-28 16:23:56 +08:00
Chrome 88 版大更新造成我一堆 ftp 连接废掉找谁说理去
dswyzx
2021-01-28 16:25:20 +08:00
原生 js 的方法还有这风险,学到了
12101111
2021-01-28 16:34:18 +08:00
Firefox 也是这样,日期和时间之间没有空格,应该是 icu 68.2 的 bug
hahastudio
2021-01-28 16:41:14 +08:00
easylee
2021-01-28 16:50:05 +08:00
对字里行间透露出来的数落很是头疼......
bclerdx
2021-03-05 13:43:28 +08:00
@easylee 人家适当数落一下,也是很正常的吧。这样才能知道问题在哪里,以后要避免。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX