<SELECT NAME="Year">
<option value="2001">2001</option>
<!--
......
-->
</SELECT>
<SELECT NAME="Month">
<option value="12">12</option>
<!--
......
-->
</SELECT>
<SELECT NAME="Day">
<option value="7">7</option>
<!--
......
-->
</SELECT><?$Birthday = $Year."-".$Month."-".$day;
<option value="2001">2001</option>
<!--
......
-->
</SELECT>
<SELECT NAME="Month">
<option value="12">12</option>
<!--
......
-->
</SELECT>
<SELECT NAME="Day">
<option value="7">7</option>
<!--
......
-->
</SELECT><?$Birthday = $Year."-".$Month."-".$day;
解决方案 »
- 北京电子商务公司【趣玩网】热招研发主管,符合条件6k起
- 不显示删除回复显示所有回复显示星级回复显示得分回复 【求助】中小企业通用网站后台管理模块的设计开发
- 求高手解答一个问题 PHP调用系统命令的问题
- 问一个checkbox复选框的问题
- 在服务器的相同机器上上传文件成功,但远程上传失败,报错:failed to open stream: No such file or directory
- mysqli函数不能用?
- 哪位大哥可以提供一个好的使用session的方法?
- 请大虾们给出一段调用客户段播放器放音乐的代码好吗 我不知道该怎么写
- 如何关闭这个错误,关于在数组中使用字符索引
- 这个模板如何能确定它在哪
- zend 优化器,如何安装??那里下载???谢谢!
- 再问:论坛的用户头像怎么实现啊?
$Birthday = $Year."-".$Month."-".$day;
如果传来的$Yeat=2001,$Month=2,$day=29 怎么办?有什么办法避免?
//日期特殊操作控制类
//宇凡 8月15日
?>
<?
//获取"YYYY-mm-dd"格式的当前时间
function NowDate()
{
$result = date("Y")."-".date("m")."-".date("d");
return $result;
} //获取"YYYY-mm-dd HH:ii:ss"格式的当前时间
function NowDateTime()
{
$result = date("Y")."-".date("m")."-".date("d")." ".date("H").":".date("i").":".date("s");
return $result;
} //从"YYYY-mm-dd"格式的时间中提取年
function GetYear($Date)
{
$pos = strpos($Date,"-");
$result = "";
for ($i=0;$i<$pos;$i++)
{
$result = $result.$Date[$i];
}
$month = GetMonth($Date);
$day = GetDay($Date);
if (!checkdate($month,$day,$result))
{
$result = false;
}
return $result;
} //从"YYYY-mm-dd"格式的时间中提取月
function GetMonth($Date)
{
$pos1 = strpos($Date,"-");
$pos2 = strrpos($Date,"-");
$result = "";
for ($i=$pos1+1;$i<$pos2;$i++)
{
$result = $result.$Date[$i];
}
$year = GetYear($Date);
$day = GetDay($Date);
if (!checkdate($result,$day,$year))
{
$result = false;
}
return $result;
} //从"YYYY-mm-dd"格式的时间中提取日
function GetDay($Date)
{
$pos = strrpos($Date,"-");
$result = "";
for ($i=$pos+1;$i<10;$i++)
{
$result = $result.$Date[$i];
}
$year = GetYear($Date);
$month = GetDay($Date);
if (!checkdate($month,$result,$year))
{
$result = false;
}
return $result;
return $result;
} //检查闰年,返回布尔值
function CheckLeap($year)
{
$result = (($year % 4 == 0) && (($year % 100 <> 0) || ($year % 400 == 0)));
return $result;
}
//在当前日期上加天数 返回"YYYY-mm-dd"格式的时间
function AddDay($offset)
{
$year=date("Y");
$month=date("m");
$day=date("d");
for ($i=0;$i<$offset;$i++)
{
switch ($month) {
case 1:
{
if ($day==31) {
$day = 1;
$month = 2;
}
else {
$day=$day + 1;
}
}
break;
case 2:
{
if (CheckLeap($year)) {
if ($day == 29) {
$day = 1;
$month = 3;
}
else {
$day=$day + 1;
}
}
else {
if ($day == 28) {
$day = 1;
$month = 3;
}
else {
$day=$day + 1;
}
}
}
break;
case 3:
{
if ($day==31) {
$day = 1;
$month = 4;
}
else {
$day=$day + 1;
}
}
break;
case 4:
{
if ($day==30) {
$day = 1;
$month = 5;
}
else {
$day=$day + 1;
}
}
break;
case 5:
{
if ($day==31) {
$day = 1;
$month = 6;
}
else {
$day=$day + 1;
}
}
break;
case 6:
{
if ($day==30) {
$day = 1;
$month = 7;
}
else {
$day=$day + 1;
}
}
break;
case 7:
{
if ($day==31) {
$day = 1;
$month = 8;
}
else {
$day=$day + 1;
}
}
break;
case 8:
{
if ($day==31) {
$day = 1;
$month = 9;
}
else {
$day=$day + 1;
}
}
break;
case 9:
{
if ($day==30) {
$day = 1;
$month = 10;
}
else {
$day=$day + 1;
}
}
break;
case 10:
{
if ($day==31) {
$day = 1;
$month = 11;
}
else {
$day=$day + 1;
}
}
break;
case 11:
{
if ($day==30) {
$day = 1;
$month = 12;
}
else {
$day=$day + 1;
}
}
break;
case 12:
{
if ($day==31) {
$day = 1;
$month = 1;
$year = $year + 1;
}
else {
$day=$day + 1;
}
}
}
}
$result=$year."-".$month."-".$day;
return $result;
} //在当前日期上减天数 返回"YYYY-mm-dd"格式的时间
function AbateDay($offset)
{
$year=date("Y");
$month=date("m");
$day=date("d");
for ($i=0;$i<$offset;$i++)
{
switch ($month) {
case 1:
{
if ($day==1) {
$day = 31;
$month = 12;
$year = $year - 1;
}
else {
$day=$day - 1;
}
}
break;
case 2:
{
if ($day == 1) {
$day = 31;
$month = 1;
}
else {
$day=$day - 1;
}
}
break;
case 3:
{
if ($day == 1) {
if (CheckLeap($year)) {
$day = 29;
}
else {
$day = 28;
}
$month = 2;
}
else {
$day=$day - 1;
}
}
break;
case 4:
{
if ($day == 1) {
$day = 31;
$month = 3;
}
else {
$day=$day - 1;
}
}
break;
case 5:
{
if ($day == 1) {
$day = 30;
$month = 4;
}
else {
$day=$day - 1;
}
}
break;
case 6:
{
if ($day == 1) {
$day = 31;
$month = 5;
}
else {
$day=$day - 1;
}
}
break;
case 7:
{
if ($day == 1) {
$day = 30;
$month = 6;
}
else {
$day=$day - 1;
}
}
break;
case 8:
{
if ($day == 1) {
$day = 31;
$month = 7;
}
else {
$day=$day - 1;
}
}
break;
case 9:
{
if ($day == 1) {
$day = 31;
$month = 8;
}
else {
$day=$day - 1;
}
}
break;
case 10:
{
if ($day == 1) {
$day = 30;
$month = 9;
}
else {
$day=$day - 1;
}
}
break;
case 11:
{
if ($day == 1) {
$day = 31;
$month = 10;
}
else {
$day=$day - 1;
}
}
break;
case 12:
{
if ($day == 1) {
$day = 30;
$month = 11;
}
else {
$day=$day - 1;
}
}
}
}
$result=$year."-".$month."-".$day;
return $result;
} //获取当前周第一天 返回"YYYY-mm-dd"格式的时间
function FirstDayOfThisWeek()
{
$offset=date("w");
if ($offset==0)
{
$offset=7;
}
$offset--;
$result = AbateDay($offset);
return $result;
} //获取当前周最后一天 返回"YYYY-mm-dd"格式的时间
function LastDayOfThisWeek()
{
$offset=date("w");
if ($offset==0)
{
$offset=7;
}
$offset = 7 - $offset;
$result = AddDay($offset);
return $result;
}
//获取指定月的天数
function DaysAmountOfThisMonth($month,$year)
{
switch ($month) {
case 1:
$result = 31;
break;
case 2:
{
if (CheckLeap($year)) {
$result = 29;
} else {
$result = 28;
}
break;
}
case 3:
$result = 31;
break;
case 4:
$result = 30;
break;
case 5:
$result = 31;
break;
case 6:
$result = 30;
break;
case 7:
$result = 31;
break;
case 8:
$result = 31;
break;
case 9:
$result = 30;
break;
case 10:
$result = 31;
break;
case 11:
$result = 30;
break;
case 12:
$result = 31;
break;
}
return $result;
}?>
function generBirthdayField($name,$label,$explText,$labels,$selected=0,$size=0,$tdCl="", //$name==birthday
$spanCl="",$value="",$newTr=TRUE)
{ global $showExplanation,$langTxt;
$s="";
if ($newTr) $s.="<tr class=\"$tdCl\">";
$s.="<td class=\"$tdCl\"><span class='$spanCl'>$label</span>\n";
if($explText!="" && $showExplanation=="expl_text")
{
$s.="<br><span class='explanationText'>$explText</span>";
}
if($explText!="" && $showExplanation=="expl_qhelp") {
$s.=" <img src='i/qhelp.gif' width='15' height='15'".
" alt=\"$langTxt[quickhelp] : $explText\"".
" title=\"$langTxt[quickhelp] : $explText\">";
}
$s.="</td><td class=\"$tdCl\">\n";
/* $s.="<input type='TEXT' name='birthday'";
$s.="size='10'";
$s.="maxlength='10'";
if ($value!="") $s.=" value=\"$value\"";
$s.="(格式:年/月/日)";
*/原来的程序,直接输入的可以用 global $year,$month,$day;
$s.="<input type='TEXT' name='year' ";
$s.=" size=4";
$s.=" maxlength=4";
$s.=">\n";
if ($value!="") $s.=" value=\"$value\"";
global $birthdayyear;
if ($value!="") $birthdayyear="$value";
$s.="年 ";
$s.="<select name='month' ";
$s.=">\n";
$s.="<option value=-1 > </option>\n";
$s.="<option value=1 > 一月 </option>\n";
$s.="<option value=2 > 二月 </option>\n";
$s.="</select>\n";
if ($value!="") $s.=" value=\"$value\"";
$s.="月 ";
$s.="<select name='day'";
$s.=">\n";
$s.="<option value='01' > 01 </option>\n";
$s.="<option value='02' > 02 </option>\n";
if ($value!="") $s.=" value=\"$value\"";
$s.="</select>\n";
$s.="天\n";
---》》 $birthday = $year."-".$month."-".$day; //这里
echo $birthday; //确实是那个格式的如:1990-01-01 可是为什么返回的数据中birthday=''啊?
$s.=" bithday=\"$birthday\"";
$s.="</td>\n";
$s.="</tr>\n";
return $s;
}
<?php
$user_typeInfo =
array(
"birthday"=>array(
"type" =>"DATE",
"not null",
"default"=>""
),
...
),.......
调用的函数]
。
elseif (strstr($val["type"],"DATE")!="")
{
$s.=generBirthdayField($attr,$txt,$expl,$labels,$selected,
0,"forumrow", "listItem"); }
。
然后是上面的函数,那里有问题啊?
bitthday='..' 可是还是不行 ,怎么回事啊?
function generBirthdayField() 返回的值是$s
就是拼的网页生日选项,
elseif (strstr($val["type"],"DATE")!="")-------------就是如果属性是DATE,那么就调用这个函数
{
就是这个啊》》 $s.=generBirthdayField$attr,$txt,$expl,$labels,$selected,
0,"forumrow", "listItem"); }
这是一个函数generform()中的,所有的表都是由他生成的,就是说对每一个表项的属性
是生成表的所有类型比如"enum"\"text'.. 都对应在这个函数中生成的,
比如是 “date" 那么就 if attribut ='date' then 调用这个生日函数
然后返回这个生日表格选项,我的解释清楚吗?
网页上的表个都有自己的名字,比如 name=birthday,那么传回数据库中的值就是
birthday='..',,就象我上面写的,那个能用的
。。
$s.="<input type='TEXT' name='birthday'";
$s.="size='10'";
$s.="maxlength='10'";
if ($value!="") $s.=" value=\"$value\"";
$s.="(格式:年/月/日)";
。。
那么返回数据库中的值就是 birthday='value',也就是你输入的值,但是换成了三个
year\month\day 后,返回的就是year=\month=\day=\ 但是数据库中没有这三个表象,只有
birthday ,所以他们添不进去,birthday返回的值总是birthday='' 就是默认的0000-00-00
不知道是为什么?
再加什么信息进去,比如text,那么只要在数据库里定义一个表那么其他的就不用管了,因为
text这个表的函数已经有了,只要直接调用就好了,你说呢?