PHP周到季度(日期)



我将日期信息作为week存储到SQL数据库表中,作为varchar。示例:2022-W10我想在本周结束季度。在我的例子中是2022年第一季度。PHP中有任何可能性吗?我在PHP date((文档中没有找到任何关于这方面的内容。

可以直接从字符串(如"2022-W10"(创建日期对象,并且可以使用format方法确定月份。四分之一的计算只是一些学校数学。

$dateFromDb = '2022-W10';
$month = date_create($dateFromDb)->format('n');
$quarter = (int)(($month+2)/3);  //int(1)

如果还需要年份,则可以使用此解决方案:

$dateFromDb = '2022-W49';
$dateTime = date_create($dateFromDb);
$quarter = (int)(($dateTime->format('n')+2)/3);
echo 'Quarter '.$quarter.' Year '.$dateTime->format('Y');  

我的意思是这个问题可以通过下一步来解决:

<?php
$date = '2022-W10';
// 1. parce year & week from string
preg_match('/(d{4})-W(d+)/', $date, $matches);
$year = $matches[1];
$week_no = $matches[2];
printf('Year: %d, Week no.: %d' . PHP_EOL, $year, $week_no);
// 2. create date by year & week number
$week_start = new DateTime();
$week_start->setISODate($year, $week_no);
// 3. get month number from date
$month = $week_start->format('n');
printf('Month: %d' . PHP_EOL, $month);
// 4. get quarter
$quarter = ceil($month/3);
printf('Quarter: %d' . PHP_EOL, $quarter);

测试PHP日期转换在线

相关内容

  • 没有找到相关文章

最新更新