最近 苏州宝宝网[www.insz.net]在网站实施过程中想把宝宝生日栏目中的“生日”范围更改一下,调用其程序的日期选择器,但郁闷的是,其中的年份范围是包含本年在内的前100年,比如今年2011年,范围是:2011~1912,这个范围有点大,也有点小瑕疵!
个人需求:
1、日期选择器需要年份范围是10年;
2、年份需要比本年预期一年,比如今年2011年,年份应该选择到2012;
在Discuz论坛中找了半天没找到,后来经过折腾解决了,方法如下:
打开 /source/function/function_profile.php 文件,找到函数 profile_setting($fieldid, $space=array(), $showstatus=false),要实现上述需求,依次做如下修改:
- 1:for ($i=0; $i<100; $i++),将其中的100修改为10;
- 2:$nowy = dgmdate($_G['timestamp'], 'Y'),在此后+1,即能达到2012年的效果!
复制代码 其它需求可查看注解即可!
-
- $html = '';
- if($fieldid == 'birthday') {
- if($field['unchangeable'] && !empty($space[$fieldid])) {
- return '<span>'.$space['birthyear'].'-'.$space['birthmonth'].'-'.$space['birthday'].'</span>';
- }
- $birthyeayhtml = '';
- $nowy = dgmdate($_G['timestamp'], 'Y')+1;//其中的+1能达到范围比本年多一年
-
- //$i<100; 指的是年份包括今年在内的100年,如需要范围为10年,将100改为10即可!
- for ($i=0; $i<100; $i++) {
- $they = $nowy - $i;
- $selectstr = $they == $space['birthyear']?' selected':'';
- $birthyeayhtml .= "<option value="$they"$selectstr>$they</option>";
- }
- $birthmonthhtml = '';//月份
- for ($i=1; $i<13; $i++) {
- $selectstr = $i == $space['birthmonth']?' selected':'';
- $birthmonthhtml .= "<option value="$i"$selectstr>$i</option>";
- }
- $birthdayhtml = '';//日期,对闰年判断
- if(empty($space['birthmonth']) || in_array($space['birthmonth'], array(1, 3, 5, 7, 8, 10, 12))) {
- $days = 31;
- } elseif(in_array($space['birthmonth'], array(4, 6, 9, 11))) {
- $days = 30;
- } elseif($space['birthyear'] && (($space['birthyear'] % 400 == 0) || ($space['birthyear'] % 4 == 0 && $space['birthyear'] % 400 != 0))) {
- $days = 29;
- } else {
- $days = 28;
- }
- for ($i=1; $i<=$days; $i++) {
- $selectstr = $i == $space['birthday']?' selected':'';
- $birthdayhtml .= "<option value="$i"$selectstr>$i</option>";
- }
- $html = '<select id="birthyear" name="birthyear" onchange="showbirthday();" tabindex="1">'
- .'<option value="">'.lang('space', 'year').'</option>'
- .$birthyeayhtml
- .'</select>'
- .' '
- .'<select id="birthmonth" name="birthmonth" onchange="showbirthday();" tabindex="1">'
- .'<option value="">'.lang('space', 'month').'</option>'
- .$birthmonthhtml
- .'</select>'
- .' '
- .'<select id="birthday" name="birthday" tabindex="1">'
- .'<option value="">'.lang('space', 'day').'</option>'
- .$birthdayhtml
- .'</select>';
复制代码
快乐是因为分享,小技巧帮助需要的人,高手勿见笑,如有不明白的欢迎互相交流,邮箱: admin@insz.net
AD:苏州宝宝网[www.insz.net]诚换链接,正规网站即可。
|