簡體   English   中英

如何獲得當月的所有星期五

[英]How to get all fridays from current month

我有個問題,

$fridays = array();
$fridays[0] = date('Y-m-d', strtotime('first friday of this month'));
$fridays[1] = date('Y-m-d', strtotime('second friday of this month'));
$fridays[2] = date('Y-m-d', strtotime('third friday of this month'));
$fridays[3] = date('Y-m-d', strtotime('fourth friday of this month'));
$fridays[4] = date('Y-m-d', strtotime('fifth friday of this month'));

但是沒有第五個星期五。 有些月份有第五個星期五。 如何檢查而不設置最后一個項目數組?

$fifth = strtotime('fifth friday of this month');

if (date('m') === date('m', $fifth)) {
  $fridays[4] = date('Y-m-d', $fifth);
}

您可以使用 PHP 日期函數執行此操作。 $timestamp獲取您想要的月份,然后執行以下操作:

<?php
function fridays_get($month, $stop_if_today = true) {

$timestamp_now = time();

for($a = 1; $a < 32; $a++) {

    $day = strlen($a) == 1 ? "0".$a : $a;
    $timestamp = strtotime($month . "-$day");
    $day_code = date("w", $timestamp);
    if($timestamp > $timestamp_now)
        break;
    if($day_code == 5)
        @$fridays++;

}

return $fridays;
}

echo fridays_get('2011-02');

你可以找到一個類似的帖子: 在 PHP 中,如何知道這個月過去了多少個星期一直到今天?

我有一個功能可以在我自己的應用程序中計算一個月中的星期五......它可能對某人有所幫助。

 function countFridays($month,$year){ $ts=strtotime('first friday of '.$year.'-'.$month.'-01'); $ls=strtotime('last day of '.$year.'-'.$month.'-01'); $fridays=array(date('Ym-d', $ts)); while(($ts=strtotime('+1 week', $ts))<=$ls){ $fridays[]=date('Ym-d', $ts); }return $fridays; }

我不在一台可以測試這個的機器上,但是關於......

if(date('Y-m-d', strtotime('fifth friday of this month')) > ""){
$fridays[4] = date('Y-m-d', strtotime('fifth friday of this month'));
}

下面的鏈接完全相同,並且將准確地涵蓋您想要做的事情,而不會像上面那樣笨拙的語句..

非常相似的閱讀: 閱讀更多...

只有當月有 30 天且第一個星期五是該月的第一天或第二天,或者如果有 31 天且第一個星期五是該月的第一天、第二天或第三天時,該月才會有 5 個星期五,因此您可以進行條件語句根據第 5 個星期五的計算

for($i=0;$i<=5;$i++)
{
       echo date("d/m/y", strtotime('+'.$i.' week friday september 2012'));
}

我用它作為我自己解決方案的基礎:

$fridays = array();
$fridays[0] = date('d',strtotime('first fri of this month'));
$fridays[1] = $fridays[0] + 7;
$fridays[2] =  $fridays[0] + 14;
$fridays[3] =  $fridays[0] + 21;
$fridays['last'] = date('d',strtotime('last fri of this month'));

if($fridays[3] == $fridays['last']){
  unset($fridays['last']);
}
else {
  $fridays[4] = $fridays['last'];
  unset($fridays['last']);
}

print_r($fridays);

我需要在一個月內獲得每個星期五的數組,即使有 5 個,這似乎可以使用原始問題作為我的基礎。

<?php //php 7.0.8

$offDays = array();

$date = date('2020-02');
$day= 'Friday';
$offDays[0] = date('d',strtotime("first {$day} of ".$date));
$offDays[1] = $offDays[0] + 7;
$offDays[2] =  $offDays[0] + 14;
$offDays[3] =  $offDays[0] + 21;
$offDays['last'] = date('d',strtotime("last {$day} of ".$date));

if($offDays[3] == $offDays['last']){
  unset($offDays['last']);
}
else {
  $offDays[4] = $offDays['last'];
  unset($offDays['last']);
}

foreach($offDays as $off){
    echo date('Y-m-d-D',strtotime(date($date."-".$off)));
    echo "\n";
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM