如何在PHP中获得每个月的第15天和最后一天


How to get every 15th and last day of the month in PHP

我正试图弄清楚如何将日期设置为每15日和月末。。。到目前为止,距离我目前的约会只有+15天。。当前日期=今天的日期。逻辑:如果当前日期小于15,则循环的开始日期在月底,如果当前日期等于或大于15,则环路的开始日期为15。所以在我的情况下,我目前的日期是11月9日,所以第一次输出应该是11月30日。

$y = 1;
while ($y <= $num_term) { // num_term is equal to the number of output
    $month_line = strtotime("15 day", strtotime("$month_sched"));
    $day = date("d", $month_line);
    $month_int = date("M-d", $month_line);
} 

输出:

Nov 24`<br />`
Dec 9`<br />`
Dec 24`<br />`

有人能帮我吗…谢谢:)

试试这个

  1. 查找每月的第一天
  2. 正如Lalji Nakum所说,找到一个月的最后一天
  3. 将你的日期与每月15日核对如下
if($today < $hDay){
    echo 'Start : '. date("t-m-Y");
}else if ($today >= $hDay){
    echo 'Start :'. $hDay;
}

在这里,1.$今天将是当前日期,2.$hDay将是一个月的第15天,就像11月15日一样

这是的样本代码

echo 'First day of month '.
$fDay = date('01-m-Y');
echo '<br> 15th day of month '.
$hDay = date('d-m-Y', (strtotime($fDay)+ (86400 * 15)));
echo '<br> Last Day of month '.
$lDay = date("t-m-Y");
echo '<br> Current day '.
$today = date('d-m-Y');
//$today =  date('d-m-Y', strtotime($hDay)+86400 );
echo '<br>'; 
if($today < $hDay){
    echo 'Start : '. $lDay = date("t-m-Y");
}else if ($today >= $hDay){
    echo 'Start :'. $hDay;
}

您可以通过获得一个月的总天数

<?php
   $a_date = "2015-11-09";
   echo totaldays = date("t", strtotime($a_date));
?>

您可以从当前日期获取当前日期:

<?php
   echo curday = date('d');
   if(curday==totaldays){
     echo "lastday";
   }
   if(curday==15)
   {
     echo "15th day";
   }
?>

find 15th:strtotime($month_sched." +14 day");

查找月份的最后一天:strtotime($month_sched." next month - 1 hour");

请尝试以下代码:

<?php
$y=1;
$num_term = 10;
//start date
$month_sched = date("2012-02-01");
while($y <= $num_term) {
    //15th
    $month_line_15 = strtotime($month_sched." +14 day");
    //last day of month
    $month_line_last = strtotime($month_sched." next month - 1 hour");
    $day = date("M-d", $month_line_15);
    $month_int = date("M-d", $month_line_last);
    $month_sched = date("Y-m-d",strtotime($month_sched." +1month"));
    $y++;
}

经过测试。

PHP隐藏

您可以使用0和15作为当天值的mktime:

$a = date("m-d", mktime(0,0,0,$month,0));
$b = date("m-d", mktime(0,0,0,$month,15));

这将为您提供上一个月的最后一天和第15天。$month

这个问题可能有足够多的答案。我也想提供一个答案。

$beginDate = new DateTime('15 January');
// clone start date
$endDate = clone $beginDate;
// Add 1 year to start date
$endDate->modify('+1 year');
// Increase with an interval of one month
$dateInterval = new DateInterval('P1M');
$dateRange = new DatePeriod($beginDate, $dateInterval, $endDate);
foreach ($dateRange as $day) {
    echo $day->format('Y-m-d')."<br />"; // 15th
    echo $day->format('Y-m-t')."<br />"; // Last month day
}

参考文献

PHP手册-DateTime

PHP手册-DateInterval

PHP手册-DatePeriod

PHP手册-克隆