【问题标题】:Finding First day of week via php [duplicate]通过php查找一周的第一天[重复]
【发布时间】:2010-12-14 22:35:42
【问题描述】:

可能重复:
Get first day of week in PHP?

嗨,

我想查找本周和上周的第一个和最后一个日期。 同样,我想找到当前月份和上个月的第一个和最后一个日期。

这必须在 PHP 中完成。请帮忙。

【问题讨论】:

标签: php datetime date


【解决方案1】:

strtotimerelative time formats 相当强大:

strtotime('monday this week');
strtotime('sunday this week');
strtotime('monday last week');
strtotime('sunday last week');

(这只适用于 PHP 5.3+)

strtotime('first day of this month');
strtotime('last day of this month');
strtotime('first day of last month');
strtotime('last day of last month');

为了在 PHP mktimedate 的组合(date('t') 给出该月的天数):

mktime(0,0,0,null, 1); // gives first day of current month
mktime(0,0,0,null, date('t')); // gives last day of current month

$lastMonth = strtotime('last month');
mktime(0,0,0,date('n', $lastMonth), 1); // gives first day of last month
mktime(0,0,0,date('n', $lastMonth), date('t', $lastMonth); // gives last day of last month

如果你只是想得到一个字符串进行演示,那么你不需要mktime

date('Y-m-1'); // first day current month
date('Y-m-t'); // last day current month
date('Y-m-1', strtotime('last month')); // first day last month
date('Y-m-t', strtotime('last month')); // last day last month

【讨论】:

  • 您提供了出色的解决方案但不幸的是,这仅适用于 PHP5.3,不适用于 5.2。我有 PHP 5.2.14。这没有用!
  • @user365870:确实,它没有记录在任何地方,我只是在页面的评论中阅读它......无论如何,请参阅我的更新答案。
  • 谢谢!这非常有效。非常感谢。
  • 这也很有用 - 任何周数的第一天和最后一天: date('Ymd', strtotime("2013-W01-1")); date('Ymd', strtotime("2013-W01-7"));
【解决方案2】:

这是一周的第一天和最后一天的函数:

function week_start_date($wk_num, $yr, $first = 1, $format = 'F d, Y') 
{ 
    $wk_ts  = strtotime('+' . $wk_num . ' weeks', strtotime($yr . '0101')); 
    $mon_ts = strtotime('-' . date('w', $wk_ts) + $first . ' days', $wk_ts); 
    return date($format, $mon_ts); 
} 

$sStartDate = week_start_date($week_number, $year); 
$sEndDate   = date('F d, Y', strtotime('+6 days', strtotime($sStartDate))); 

它可能也可以适应月份,但我想得到我的答案! :)

【讨论】:

  • 我实际上是自己通过谷歌搜索找到了他引用的论坛帖子,谢谢:) ...甚至没有从其他 stackoverflow 线程中看到他的答案...
  • 好的,那我撤回我的评论:)
  • 这也对我有用。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多