捷荀讷 发表于 2025-6-4 09:56:59

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

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

笙芝 发表于 2025-11-30 22:09:35

喜欢鼓捣这些软件,现在用得少,谢谢分享!

厌外 发表于 2025-12-5 19:20:31

过来提前占个楼

芮梦月 发表于 2025-12-8 08:58:51

前排留名,哈哈哈

村亢 发表于 2025-12-21 05:37:01

过来提前占个楼

万俟谷雪 发表于 2025-12-28 03:27:20

感谢,下载保存了

方子楠 发表于 2026-1-18 22:36:14

前排留名,哈哈哈

靳夏萱 发表于 2026-1-21 05:06:25

收藏一下   不知道什么时候能用到

黎娅茜 发表于 2026-1-21 09:05:03

感谢分享,学习下。

注思 发表于 2026-1-21 16:27:54

前排留名,哈哈哈

烯八 发表于 2026-1-22 09:00:27

懂技术并乐意极积无私分享的人越来越少。珍惜

蝌棚煌 发表于 2026-1-23 06:30:57

这个有用。

姬宜欣 发表于 2026-1-23 08:22:00

感谢发布原创作品,程序园因你更精彩

顶豌 发表于 2026-1-24 04:39:57

感谢分享,学习下。

撒阗奕 发表于 2026-1-25 21:06:14

yyds。多谢分享

佴莘莘 发表于 2026-1-28 10:25:59

这个好,看起来很实用

笙芝 发表于 2026-1-30 06:32:12

感谢,下载保存了

请蒂 发表于 2026-2-3 03:53:51

新版吗?好像是停更了吧。

贺蛟亡 发表于 2026-2-8 09:14:01

感谢分享,下载保存了,貌似很强大

第璋胁 发表于 2026-2-8 18:43:50

喜欢鼓捣这些软件,现在用得少,谢谢分享!
页: [1] 2
查看完整版本: PHP转Go系列 | Carbon 时间处理工具的使用姿势