Php 计算星期日和#x27;s在给定的月份和年份中

Php 计算星期日和#x27;s在给定的月份和年份中,php,Php,我希望输出是给定月份和年份中星期天礼物的计数 这是我的代码: $months=$_POST['month']; $years=$_POST['year']; $monthName = date("F", mktime(0, 0, 0, $months)); $fromdt=date('Y-m-01 ',strtotime("First Day Of $monthName $years")) . '<br/&g

我希望输出是给定月份和年份中星期天礼物的计数

这是我的代码:

$months=$_POST['month'];  
$years=$_POST['year'];                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }
}
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }    
}
echo "Total Count is: ".$num_sundays;
?>
$months=$\u POST['month'];
$years=$_POST['year'];
$monthName=日期(“F”,mktime(0,0,0,$monthName));
$fromdt=日期('Y-m-01',标准时间($monthName$年的第一天)。'
; $todt=日期('Y-m-d',标准时间($monthName$年的最后一天)。'
; $num_sundays=''; 对于($i=0;$i<((strotime($todt)-strotime($fromdt))/86400;$i++) { 如果(日期('l',标准时间($fromdt)+($i*86400))=='Sunday') { $num_sundays++; } }

如果我回显$num_sundays,则不会得到任何输出。请帮帮我。我是新来PHP的

在一个月内得到所有的星期天,请参见下面的代码:

function total_sun($month,$year)
{
    $sundays=0;
    $total_days=cal_days_in_month(CAL_GREGORIAN, $month, $year);
    for($i=1;$i<=$total_days;$i++)
    if(date('N',strtotime($year.'-'.$month.'-'.$i))==7)
    $sundays++;
    return $sundays;
}
echo total_sun(11,2016);
function total\u sun($month,$year)
{
$sundays=0;
$total_days=cal_days_in_month(cal_GREGORIAN,$month,$year);

对于($i=1;$i您只需从这两行中删除

$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';
这两个选项都将返回false

示例2:

$months=$_POST['month'];  
$years=$_POST['year'];                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }
}
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }    
}
echo "Total Count is: ".$num_sundays;
?>

这将返回值

完整示例:

$months=$_POST['month'];  
$years=$_POST['year'];                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }
}
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) . '<br/>';
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years")) . '<br/>';

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

var_dump(strtotime($todt));
var_dump(strtotime($fromdt));
?>
<?php
$months = 12;  
$years=2016;                                      
$monthName = date("F", mktime(0, 0, 0, $months));
$fromdt=date('Y-m-01 ',strtotime("First Day Of  $monthName $years")) ;
$todt=date('Y-m-d ',strtotime("Last Day of $monthName $years"));

$num_sundays='';                
for ($i = 0; $i < ((strtotime($todt) - strtotime($fromdt)) / 86400); $i++)
{
    if(date('l',strtotime($fromdt) + ($i * 86400)) == 'Sunday')
    {
            $num_sundays++;
    }    
}
echo "Total Count is: ".$num_sundays;
?>

这将返回4个星期日

工作示例

$startd=“31-7-2006 15:30:00”;
$endd=“31-7-2007 15:30:00”;
$startDate=$startd;
$endDate=$endd;
$startDate1=strottime($startDate);
$endDate1=strottime($endDate);
如果($startDate1>$endDate1)
{
$startDate1=strottime($endDate);
$endDate1=标准时间($startDate);
}否则{
$startDate1=strottime($startDate);
$endDate1=strottime($endDate);
}
$p=0;

对于($i=strottime(“Sunday”,$startDate1);$i获取一年中给定月份中任意一天的计数:

    $year = '2019';
    $month = '2';
    $day = 'Tuesday';
    $count = 0;
    $days = cal_days_in_month(CAL_GREGORIAN, $month, $year);

    $date = new Datetime($year.'-'.$month.'-01');

    for($i=1; $i<$days; $i++){
        if($date->format('l') == $day){
            $count++;
        }
        $date->modify('+1 day');
    }
    echo "Count: $count";
$year='2019';
$month='2';
$day=‘星期二’;
$count=0;
$days=每月的计算天数(计算公历,$month,$year);
$date=新日期时间($year.'-'.$month.'-01');
对于($i=1;$iformat('l')==$day){
$count++;
}
$date->modify(“+1天”);
}
回声“计数:$Count”;

没有循环。我希望这会给出正确的结果

date_default_timezone_set('UTC');

// unix timestamp 0 = Thursday, 01-Jan-70 00:00:00 UTC
// unix timestamp 259200 = Sunday, 04-Jan-70 00:00:00 UTC

$sun_first = strtotime('1970-01-04');

$t1 = strtotime('2018-10-01') - $sun_first - 86400;
$t2 = strtotime('2018-10-31') - $sun_first;

$sun_count = floor($t2 / 604800) - floor($t1 / 604800); // total Sunday from 2018-10-01 to 2018-10-31

echo $sun_count; // 4

检查下面的例子。我工作得很好

function dayCount($day,$month,$year){
$totalDay=cal_days_in_month(CAL_GREGORIAN,$month,$year);

$count=0;

for($i=1;$totalDay>=$i;$i++){

  if( date('l', strtotime($year.'-'.$month.'-'.$i))==ucwords($day)){
    $count++;
    }

}

echo $count;


}


dayCount('saturday',3,2019);

如果有帮助,请使用此代码

   public function countWeekendDays($month, $year){
        $daytime = strtotime(date($year."/".$month."/01 00:00:01"));
        $daysOfMonth = date("t", $daytime);
        $weekdays = 0;
        for ($day=1;  $day <= $daysOfMonth; $day++) { 
            $time = strtotime(date($year.'/'.$month.'/'.$day.' 00:00:01'));
            $dayStr = date('l', $time);
            if ($dayStr == 'Saturday' || $dayStr == 'Sunday') {
                $weekdays++;
            }
        }

        return $weekdays;
    }
public function countweekendday($month,$year){
$day=strottime(日期($year.“/”$month.“/01 00:00:01”);
$daysOfMonth=日期(“t”,$days);
$weekdays=0;

对于($day=1;$day天计数的简单代码:

function dayCount($day,$month,$year){

    $totaldays = date('t',strtotime($year.'-'.$month.'-01'));
    $countday = 4;
    if(($totaldays - $day) >= 28 ){
        $countday = 5;      
    }
    return  $countday;

}

echo dayCount(1,9,2019);

strotime($todt)
为空从两行中删除此

,然后检查结果,我认为也是empty@devprohey thnx man..现在效果很好。+1为了帮助你的朋友,你可以检查下面的完整示例,不要忘记接受正确的答案。这将有助于未来的访问者。这是不正确的。例如:2018年返回4九月九日但是那个月有5个星期天欢迎使用Stack Overflow!虽然这段代码可能会解决这个问题,但它如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,您是在将来为读者回答这个问题,而不仅仅是现在提问的人。请您的回答我们需要添加解释,并说明适用的限制和假设。