PHP - 根据一个月内的天数更改图像

时间:2017-02-15 06:11:44

标签: javascript jquery datepicker

当我点击Jquery中的某个日期时,我试图使用PHP根据一个月(28,29,30或31)中的天数更改不同select.onchange = updateMe; updateMeToo; updateMeAlso; 中的图片日期选择器。

示例...今天是2017年2月15日,所以如果我点击2017年2月3日的内联日期选择器,DIV会显示基于28天月份的图片,如果我点击了在2016年12月22日,DIV将显示基于31个月的图片。

2 个答案:

答案 0 :(得分:0)

这是您获取特定月份天数的方法。请参阅 working fiddle

var numDays = new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();



Date.prototype.monthDays = function() {
  var d = new Date(this.getFullYear(), this.getMonth() + 1, 0);
  return d.getDate();
}

$(function() {
  var datepicker = $("#datepicker").datepicker({
    onSelect: function(date) {
      var numberOfDays = new Date(date).monthDays();
      var src = '';

      switch (numberOfDays) {
        case 28:
          src = 'http://4vector.com/i/free-vector-28-clip-art_115408_28_clip_art_medium.png';
          break;
        case 30:
          src = 'http://www.clipartkid.com/images/135/30-lessons-learned-in-30-years-a-good-run-Ergij9-clipart.jpg';
          break;
        case 31:
          src = 'https://img.clipartfest.com/fb17991d9c81ea61b1a2950086928603_-vector-number-31-clip-art-number-31-clipart_300-249.png';
          break;
        case 29:
          src = 'http://www.drodd.com/images16/29-14.jpg';
          break;
      }
      $('#img').attr('src', src);
    }
  });
});

#img {
  height: 80px;
  width: 80px;
  border: none;
}

<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<p>Date:
  <input type="text" id="datepicker">
</p>
<p>
  <img src="" id="img">
</p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在PHP中,您可以像这样获得本月的天数:

<?php

$numDays = (int) date('j', strtotime('last day of this month'));

或者如果您使用的是PHP7,

<?php

$numDays = (int) (new DateTime("last day of this month"))->format('j')

如果要指定月份和年份,可以在相对日期字符串中使用月份和年份。例如"last day of February 2004"代替"last day of this month"

有关详细信息,请参阅Relative Datedate()