php - 周数唯一可排序整数 id
问题描述
我的问题是关于编程哲学的,我用 PHP 语言举了一个例子,但可以用任何编程语言问:
- 如果我必须给一天一个唯一的可排序整数 ID,我可以使用
'Ymd'
格式 - 如果我必须给一个月一个唯一的可排序整数 ID,我可以使用
'Ym'
格式 - 如果我必须给一周一个唯一的可排序整数 ID,我不能使用
'YW'
格式
因为2017-01-01
并且2017-12-31
将返回同一周的 ID:
$date1 = DateTime::createFromFormat('Y-m-d', '2017-01-01');
$date2 = DateTime::createFromFormat('Y-m-d', '2017-12-31');
echo $date1->format('YW').' '.$date2->format('YW');
// returns 201752 201752
所以我可以使用一周的第一天 ID 作为唯一的可排序整数 ID 周,但可能有更简单的方法来解决它?更好的做法?
解决方案
您可以o
改用:
echo $date1->format('oW').' '.$date2->format('oW');
//201652 201752
o ISO-8601 周编号年份。这与 Y 具有相同的值,除了如果 ISO 周数 (W) 属于上一年或下一年,则使用那一年。(在 PHP 5.1.0 中添加)
推荐阅读
- javascript - 合并填充有 MongoDB 集合数据的表的单元格?
- docker - 如何从 locahost 访问 Docker Toolbox 容器?
- javascript - 如何隐藏标签直到它悬停
- angular - 角度设置标题取决于激活的路线及其父母
- soundcloud - 为什么检索 soundcloud 曲目会出现 403 禁止错误?
- python - 从 Python 中的文本中提取 ISIN、Cusip 和其他模式
- azure - 使用 AAD 和 Azure 函数的简易身份验证隐式流返回未经授权
- circuits-framework - 是否可以在 python 电路组件中定义单例
- python - 在 PySpark 中使用 Scala 对象时出错
- sockets - 使用 golang 从连接到网络接口的原始套接字读取