javascript + golang处理时间问题
2016-02-16 11:35
1416 查看
javascript + golang处理时间问题
今天一个同事问js和golang处理时间问题上总是有误差,于是想到了去年做的一个项目中也出现了这样的问题,发个博客记录一下:直接上代码:
javascript片段: var sa = $('#sa').datetimebox('getValue'); var ea = $('#ea').datetimebox('getValue'); //此时sa和ea输出为yyyy-MM-dd HH:mm:ss这种标准格式的字符串 ----------------------------------------- var sa1 = new Date(sa).toISOString(); var ea1 = new Date(ea).toISOString(); //此时sa1和ea1需转为ISO-8601格式: YYYY-MM-DDTHH:mm:ss.sssZ
golang片段: sa1 := form["sa"][0] ea1 := form["ea"][0] fmt.Println("sa1: ", sa1) fmt.Println("ea1: ", ea1) sa, _ := time.Parse(time.RFC3339Nano, sa1) ea, _ := time.Parse(time.RFC3339Nano, ea1) fmt.Println("sa: ", sa) fmt.Println("ea: ", ea)
经过以上处理之后就不会出现前端时间和数据库中保存的时间不一致的情况了。
浏览器控制台输出:
golang程序:
golang输出:
数据库存储:
*
有些浏览器可能在转iso时间的时候会出现不兼容问题,只需要在转换iso时间之前加上以下代码即可:
if (!Date.prototype.toISOString) { Date.prototype.toISOString = function() { function pad(n) { return n < 10 ? '0' + n : n } return this.getUTCFullYear() + '-' + pad(this.getUTCMonth() + 1) + '-' + pad(this.getUTCDate()) + 'T' + pad(this.getUTCHours()) + ':' + pad(this.getUTCMinutes()) + ':' + pad(this.getUTCSeconds()) + '.' + pad(this.getUTCMilliseconds()) + 'Z'; } }
*
希望对各位能有所帮助!
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- Go 语言 Channel 实现原理精要
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Go语言将支持Android
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享