GO获取两个日期之间的天数差

1、实现

import (
	"time"
)

func GetDaysBetween2Date(format string, date1Str string, date2Str string) (int, error) {
	// 转化字符串为Time格式
	date1, err := time.ParseInLocation(format, date1Str, time.Local)
	if err != nil {
		return 0, err
	}
	// 转化字符串为Time格式
	date2, err := time.ParseInLocation(format, date2Str, time.Local)
	if err != nil {
		return 0, err
	}
	//计算相差天数
	return int(date1.Sub(date2).Hours() / 24), nil
}

format: 表示日期格式,比如"20060102","2006-01-02",注意GO里面,格式只能使用20060102这天的日期

date1Str:开始日期的字符串表示,格式需要与format一致

date2Str:结束日期的字符串表示,格式需要与format一致

2、示例

GetDaysBetween2Date("20060102", "20220610", "20220601")       //结果为9
GetDaysBetween2Date("2006-01-02", "2022-06-10", "2022-06-01") //结果为9
全部评论
大喵喵酱
大喵喵酱
这里计算的是小时差,然后除以24,假设是47小时,会当做两天,我理解没错吧?
点赞
评论
rjszz
应该是的, 不过函数传入的只有日期,我的理解要么会统一为0,要么同用Local的,应该没啥问题吧~
点赞1
评论
rjszz
至人无己,神人无功,圣人无名
  • 积分
    58
  • 话题
    2
  • 评论
    12
  • 注册排名
    7044