接手的项目里有国际化背景,所以在时间展示上也有不同时区的展示,早上接到需求说之前时间展示都是后端做的兼容,前端传递的固定字符串格式‘YYYY-DD-MM’,这样问题其实很大,原因是不通过unix的时间戳来进行时间交互,那么多时区下 后端就要针对不对的时区来做转化,这无疑是比较麻烦而且容易出错的。
标准应该是前后端时间交互使用时间戳进行交互,unix时间戳是通用格式,这个可以保证前后端的数据交互上是统一的。
前端如果有多时区的展示 会有两种方案。
第一种就是 直接使用 new Date对象进行时间戳转化,这个时候的时区来自于浏览器识别你当前设备的时区,所以时间转化后也和你的设备时区保持一致,这种缺点就是 可测试性不强,优点是程序员需要做很少的事情就可以多时区处理。
第二种是 使用moment类的js时间处理库(JS本身的时区处理只有一个api 比较麻烦),进行多时区的处理,moment 有一个 Moment Timezone的扩展,是专门处理时区的,这样可测试性强,但是需要每个时区针对不同的解析方法。
细节比较多,自己再收集一下 下次写成文章
标准应该是前后端时间交互使用时间戳进行交互,unix时间戳是通用格式,这个可以保证前后端的数据交互上是统一的。
前端如果有多时区的展示 会有两种方案。
第一种就是 直接使用 new Date对象进行时间戳转化,这个时候的时区来自于浏览器识别你当前设备的时区,所以时间转化后也和你的设备时区保持一致,这种缺点就是 可测试性不强,优点是程序员需要做很少的事情就可以多时区处理。
第二种是 使用moment类的js时间处理库(JS本身的时区处理只有一个api 比较麻烦),进行多时区的处理,moment 有一个 Moment Timezone的扩展,是专门处理时区的,这样可测试性强,但是需要每个时区针对不同的解析方法。
细节比较多,自己再收集一下 下次写成文章
展开
评论
2