PHP转Go系列 | Carbon 时间处理工具的使用姿势

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

各人好,我是码农先森。
在日常的开辟过程中经常会遇到对时间的处理,比如将时间戳进行格式化、获取昨天或上周或上个月的时间、基于当前时间进行加减等场景的使用。在 PHP 语言中有一个针对时间处理的原生函数 strtotime,各人都知道这个函数只能满足根本的使用,假如遇到比力复杂的场景,则处理起来会比力繁琐。PHP 作为世界上最好的语言,在这个问题面前自然会有大佬出来造轮子,由此就出现了 nesbot/carbon 扩展包。其实在 Go 语言中也有同样功能的第三方库 carbon,我看过介绍文档后,惊呼到简直和 PHP 的扩展包长的一摸一样,看样子这位 Go 大佬也是从 PHP 转过去的。这样的好事直接降低了我们的学习成本,让我们更加容易上手。
在 php_carbon 目次下中使用 composer 命令安装 carbon 包。
  1. [manongsen@root ~]$ pwd
  2. /home/manongsen/workspace/php_to_go/php_carbon
  3. [manongsen@root php_carbon]$ composer require nesbot/carbon
复制代码
在 go_carbon 目次下中使用 go mod init 初始化 Go 项目,并且使用 go get 安装 carbon 库 。
  1. [manongsen@root ~]$ pwd
  2. /home/manongsen/workspace/php_to_go/go_carbon
  3. [manongsen@root go_carbon]$ go mod init go_carbon
  4. [manongsen@root go_carbon]$ go get github.com/golang-module/carbon/v2
复制代码
这是初始化完成后的项目布局。
  1. [manongsen@root php_to_go]$ tree -L 2
  2. .
  3. ├── README.md
  4. ├── go_carbon
  5. │   ├── go.mod
  6. │   ├── go.sum
  7. │   └── main.go
  8. └── php_carbon
  9.     ├── composer.json
  10.     ├── composer.lock
  11.     ├── index.php
  12.     └── vendor
复制代码
我们先在 PHP 脚本代码的首行通过函数 date_default_timezone_set 设置时区,再使用 require 加载依赖包。从下面示例代码中可以看出 Carbon 工具的用法照旧比力便捷,比如使用 subDays 和 addDays 函数可以加减天数、使用 diffForHumans 函数能以符合人阅读习惯的方式输出等。别的,还有一些例子中没有展示的用法,例如获取当前的季节、获取本周开始竣事时间、时间差的计算、判断当前的月份、获取当前是本周的第几天等等,从官方提供的文档来看 Carbon 工具用法照旧相当的丰富,险些可以满足任意业务场景的使用。
[code]
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表