繁体   English   中英

使用PHP DateTime获取某个日期的“正确”年份

[英]Get the “Right” Year of a Certain Date with PHP DateTime

我试图将日期“YYYY / MM / DD”转换为“YYYY / WW”格式,因此我可以存储每周聚合数据,其结构如下

aggre_date(YYYY/WW)    value    id

但我发现了一个令人讨厌的问题

$dateTime  = new DateTime("2014-12-30");
echo $dateTime->format("Y-W")."\n";
$dateTime  = new DateTime("2014-01-01");
echo $dateTime->format("Y-W")."\n";

结果与2014-01完全相同,但前者应该是2015-01

有没有办法改善我的每周聚合数据设计或获得“正确”的一年?

您需要使用o作为ISO年份:

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

$dateTime  = new DateTime("2014-12-30");
echo $dateTime->format("o-W")."\n";
$dateTime  = new DateTime("2014-01-01");
echo $dateTime->format("o-W")."\n";

2015-01
2014-01

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM