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

来源:互联网 发布:网络 克隆 编辑:程序博客网 时间:2024/05/16 17:12

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

begin = date.beginning_of_monthend = 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

0 0
原创粉丝点击