最近看了信条,有点上头,写完这篇就去二刷
本文主要记录一下 《一周的开始是星期一还是星期天》 这个问题
事情起因
周五晚上完成了一个排行榜的需求,匆忙上线,然后开始了美好的周末时光。
在周天的早上却被电话吵醒
翔仔,快看看排行榜的本周数据怎么不对,数据量很少,快看看,不然老板要发飙啦!!!
我们和后端接口采用的graphQL协议,查询数据的时间范围是前端传的
我是用dayjs取,成熟的框架不应该出这么低级的问题啊!
代码如下:
// 时间范围
begin: dayjs().startOf('week'),
end: dayjs().endOf('week')
划重点:本周数据
我立马反应过来,周天的本周数据量很少,难道是对于周天来说,周天就是本周的第一天??
啊这,是不是有点不讲武德
我马上翻阅dayjs的文档,果然是这个原因,dayjs取值的每周的startOf就是从周天开始
所以官方定义一周的开始真的是周天吗?
从我们日常生活来说,大家肯定都会认为星期一是一周的开始
可是也不排除是因为公认的上班时间,导致了大家的这个理念
我的脑子里一直有个周天是一周开始的印象,并且我们熟悉的挂历,电脑手机系统的日历,
似乎每一周的那一行都是从周天开始的
所以到底是怎么回事呢?我去查阅了资料
直接上结论:
认为周天是一周的开始,和认为周一是一周的开始,都没错
其中
- 认为周天是一周的开始,是符合(西方的)传统说法的,并不是空穴来风
- 认为星期一是一周的开始,更符合国际当前的标准(ISO 8601标准)
Sunday作为每周第一天是历史传统,
这是由于宗教原因,基督教和犹太教认为上帝七天创造世界,第七天是Saturday,所以Saturday是每周最后一天,Sunday是每周第一天。
在几十年前,信基督教的人在西方还比较多的时候,整个社会还是普遍接受Sunday作为每周的第一天。
但几十年过去了,越来越少的人信教,宗教的影响江河日下,大家逐渐开始接受Monday作为每周第一天。
因为Monday是每周第一个工作日,无论是从人的主观体验还是工作安排来说,用Monday作为每周第一天是更直观的。
现在国际标准 ISO 8601 《数据存储和交换形式·信息交换·日期和时间的表示方法》中,已经把Monday作为每周第一天了。
我国的国家标准 GB/T 7408-2005 也规定了星期一是每周的第一天,所以在中国是很明确的了。
所以没必要把这作为日常生活的困扰。
我们认为星期一是一周的开始,这是没错的。
在程序中,如果你使用了框架,则需要特别留意一下框架的说明
哦,搞了半天,是我自己没注意文档,写了个bug。。。
Comments | NOTHING