Golang根据获取当前日期的月份起始

本文介绍如何在Golang中将前端传来的日期字符串转换为月份的起始和结束时间,并提供了一个具体的实现函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做给同学义务做一个给家里用的计件系统,需要按照月份来筛选相应的记录。主要问题变成了根据前端页面获取的日期字符串得到该月份的起始时间。
以前这个用ruby on rails来做可是还是比较方便的,把从前端获取的字符串,例如从前端获取”2017-4-13”这个字符串,那么我用date = DateTime.strptime("2017-4-13","%Y-%m-%d") 就可以把字符串转换为DateTime类型,然后

begin = date.beginning_of_month
end = date.end_of_month

就可以获取这个月的起始时间了。
但是在golang里貌似没有找到这样的函数,所以这个函数我们就需要自己实现了。下边是我写的函数

func getYearAndMonth(dd time.Time) (start time.Time, end time.Time) {
    year, month, _ := dd.Date()
    loc := dd.Location()

    startOfMonth := time.Date(year, month, 1, 0, 0, 0, 0, loc)
    endOfMonth := startOfMonth.AddDate(0, 1, -1)
    return startOfMonth, endOfMonth
}

其中dd是需要传入的time包的Time类型的结构体。可以通过下边方式来获得(假设从页面获取的日期字符串为”2017-04-13”)。

datestr := "2017-04-13"
dd = time.Parse("2006-01-02", datestr)//这里的"2006-01-02"是golang的规定,模板必须为这个日期(我也很无奈啊)

还查到一些针对这个问题的library,大家也可以看一下,因为我用的比较少,所以没有使用这个插件。
https://github.com/jinzhu/now

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值