在用SpringBoot做Server端的SPA项目中,遇到一个由Js的Date构造函数在不同的浏览器中表现不一致的bug。
例如在IE中
var day = new Date("2018-01-11 14:25:36");
浏览器会报Invalid Date错误,在其他浏览器如firefox和chrome中,能接受的字符时间格式参数也是不一样的,这样的兼容性问题导致要花更多的代码或者引入其他时间库来解决,如moment.js。
好在在所有的浏览器中,Date对象都有接受时间戳作为参数的构造函数
var day = new Date(1533620785000);
因此我们希望后端传输过来的时间类型都能是时间戳,这样就能很简单的解决兼容性问题,在SpringBoot2中,只需要在配置文件application.yml中加入相关配置
spring:
jackson:
serialization:
write-dates-as-timestamps: true
如果是application.properties,则添加
spring.jackson.serialization.write-dates-as-timestamps = true