首页 > 解决方案 > 周数唯一可排序整数 id

问题描述

我的问题是关于编程哲学的,我用 PHP 语言举了一个例子,但可以用任何编程语言问:

因为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 周,但可能有更简单的方法来解决它?更好的做法?

标签: phpdatetime

解决方案


您可以o改用:

echo $date1->format('oW').' '.$date2->format('oW');
//201652 201752

o ISO-8601 周编号年份。这与 Y 具有相同的值,除了如果 ISO 周数 (W) 属于上一年或下一年,则使用那一年。(在 PHP 5.1.0 中添加)

http://php.net/manual/en/function.date.php


推荐阅读