javascript + golang处理时间问题

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程序

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';
      }
    }

*

希望对各位能有所帮助!

Python和Golang是两种不同的编程语言,它们在不同的领域有着各自的优势和用途。 Python是一种通用的高级编程语言,它具有简单易学、代码可读性强的特点,非常适合用于数据分析、人工智能、科学计算等领域。Python拥有丰富的第三方库和生态系统,可以方便地进行各种开发任务。 Golang是一种静态类型的编程语言,它具有高效、并发性强的特点,非常适合用于构建高性能的网络服务和分布式系统。Golang的语法简洁,编译速度快,可以有效地利用多核处理器的优势。 如果你想结合Python和Golang进行开发,可以考虑以下几种方式: 1. 使用Python调用Golang代码:你可以使用Python的`subprocess`模块或者`ctypes`模块来调用Golang编写的可执行文件或者动态链接库。这样可以充分发挥Golang的高性能特点,同时利用Python丰富的库来进行数据处理和分析。 2. 使用Golang调用Python代码:Golang提供了`cgo`模块,可以方便地调用C语言的代码。你可以使用`cgo`模块来调用Python的C API,从而在Golang中调用Python代码。这样可以利用Python强大的库来进行数据处理和分析,同时利用Golang的高性能特点来提高程序的执行效率。 3. 使用RPC或消息队列进行通信:你可以使用RPC框架(如gRPC)或消息队列(如RabbitMQ)来实现Python和Golang之间的通信。通过定义好的接口和消息格式,可以方便地在两种语言之间传递数据和调用函数。 总之,Python和Golang可以很好地结合使用,根据具体的需求和场景选择合适的方式进行开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值