php - 一月份的重复天数

标签 php

2016 年的 php 日历显示正确的日期,当我将其更改为 2017 年时,它显示 1 月份的重复日期。现在我已经硬编码了 2016 年和 2017 年,稍后我会将其更改为系统日期。有人可以帮助我吗?

<?php 
    $dates = getDates(date("Y")); //gets system default date, if i change this to date(2016) works fine, when i change to 2017 it shows repeated days entry for january month.

    $weekdays = array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'); //prints weeks.
    $monthPrints = array('01'=>'January','02'=>'February','03'=>'March','04'=>'April','05'=>'May','06'=>'June','07'=>'July','08'=>'August','09'=>'September','10'=>'October','11'=>'November','12'=>'December'); ?>  // prints month string.

<?php foreach($dates as $month => $weeks) { ?>
    <?php print_r($monthPrints[$month]); ?>
    <table id="<?= $month ?>">    
        <tr>
            <th><?php echo implode('</th><th>', $weekdays); ?></th>
        </tr>
        <?php foreach($weeks as $week => $days){ ?>
        <tr>
         <?php foreach($weekdays as $day){ ?>
            <td>
                <?php echo isset($days[$day]) ? $days[$day] : '&nbsp'; ?>
            </td>               
            <?php } ?>
        </tr>
        <?php } ?>
    </table>
    <?php  }?>
    <?php
    function getDates($year)
    {
        $dates = array();

        for($i = 1; $i <= 366; $i++){
            $month = date('m', mktime(0,0,0,1,$i,$year));
            $wk = date('W', mktime(0,0,0,1,$i,$year));
            $wkDay = date('D', mktime(0,0,0,1,$i,$year));
            $day = date('d', mktime(0,0,0,1,$i,$year));

            $dates[$month][$wk][$wkDay] = $day;
        } 

        return $dates;
    }
?>

enter image description here

最佳答案

问题是 getDates() 中的 for 循环上升到 366。将此数字更改为 365,一切都会好起来的。 我猜这是因为 2016 年是双性交,而 2017 年不是。

您应该使用不同的方法从一年中的某天获取日期,查看这个:Php how to go from day of the year to date and vice versa

关于php - 一月份的重复天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423331/

相关文章:

PHP 正确缩进?

php - 即使用户关闭了浏览器,PHP 脚本还能继续运行吗?

php - 将 TFS 用于非 Microsoft 项目

php 头文件传输损坏

php - PHP CLI 的优点?

php - AM PM 未插入 mysql 表

php - 在 PHP/MySQL 中比较两个电子邮件地址总是返回 false

php - $_REQUEST 有效,但 $_POST 无效 -

用于将数据从一个页面传输到另一个页面的 php 代码逻辑

php - 在 Wordpress 中上传 Ajax 文件 - 无法传递 FormData