PHP计算某一年有几周以及每周开始日期和结束日期 代码示例

最近有一个朋友在做项目的时候,遇到了一个问题,其中有一需求是用php获取一年有几周以及每周开始日期和接触日期?最主要就是要找一年中的星期一 星期日的日期;

在网上找些资料没有合适的,于是自己通过网上代码整理了一份,下面通过两种方式实现PHP获取一年有几周以及每周开始日期和结束日期:

 

方法一:

<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$_GET['year'];
$week = (int)$_GET['week'];
$weeks = date("W", mktime(0, 0, 0, 12, 28, $year));
echo $year . '年一共有' . $weeks . '周<br />';
if ($week > $weeks || $week <= 0)
{
 $week = 1;
}
if ($week < 10)
{
 $week = '0' . $week;
}
$timestamp['start'] = strtotime($year . 'W' . $week);
$timestamp['end'] = strtotime('+1 week -1 day', $timestamp['start']);
echo $year . '年第' . $week . '周开始时间戳:' . $timestamp['start'] . '<br />';
echo $year . '年第' . $week . '周结束时间戳:' . $timestamp['end'] . '<br />';
echo $year . '年第' . $week . '周开始日期:' . date("Y-m-d", $timestamp['start']) . '<br />';
echo $year . '年第' . $week . '周结束日期:' . date("Y-m-d", $timestamp['end']);

结果:

此结果必须通过网址“http://localhost/week.php?year=2018&week=5”的形式来预览!

2018年一共有52周

2018年第05周开始时间戳:1517155200

2018年第05周结束时间戳:1517673600

2018年第05周开始日期:2018-01-29

2018年第05周结束日期:2018-02-04

 

方法二:

<?php
header("Content-type:text/html;charset=utf-8");
function getIsoWeeksInYear($year)
{
 $date = new DateTime;
 $date->setISODate($year, 53);
 return ($date->format("W") === "53" ? 53 : 52);
}
function weekday($custom_date)
{
 $week_start = date('d-m-Y', strtotime('this week monday', $custom_date));
 $week_end = date('d-m-Y', strtotime('this week sunday', $custom_date));
 $week_array[0] = $week_start;
 $week_array[1] = $week_end;
 return $week_array;
}
echo '<br> Weeks in 2018<br>' . getIsoWeeksInYear(2018);
$weekday = weekday(strtotime(date('d-m-Y', strtotime('5-8-2018'))));
echo '<br>开始: ' . $weekday[0];
echo '<br>结束: ' . $weekday[1];
?>

结果:

Weeks in 2018

52

开始: 30-07-2018

结束: 05-08-2018

 

PHP计算某一年有几周以及每周开始日期和结束日期

总结:由于我朋友的需求是要得到每年的周一开始日期和周日结束日期,因为我推荐他用方法一比较好。他可以把方法一做成一个方法,每一周可以做一个循环,这样就可以得出一年中所有星期一开始的日期和一年中所有星期日结束的日期了;

    A+
发布日期:2018年01月11日 18:38:07  所属分类:PHP
最后更新时间:2018-01-11 18:42:14
付杰
  • ¥ 199.0元
  • 市场价:199.0元
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 99.0元
  • 市场价:99.0元
  • ¥ 199.0元
  • 市场价:399.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: