方法比较土,但是能实现你所想要的功能$tms = strtotime("2007-11");
$tme = strtotime("2008-3");$arr = array();
while ($tms < $tme) {
  $m = strftime("%Y%m",$tms);
  if (! in_array($m,$arr)) {
    array_push($arr,$m);
  }
  $tms += 86400;
}
print_r($arr);
echo "共".count($arr)."个月";

解决方案 »

  1.   

    两个页面间传递,估计要用的session或cookie.或者用window.open
      

  2.   

    两个页面间传递,估计要用的session或cookie.或者用window.open
    ======================
    可以直接按submit提交的。现在我最头痛的是不知道表字段怎么设置
    =============
    想过几种方法
    第一种,直接用下拉框显示年份。然后用多选框显示月份。一共12个多选框,多选框选中后值为1,提交后,表字段为,nf,yf01....yf12。yf01-yf12存储12个月的状态。
    这个方法有两个问题。第一,跨年度的时候,无法同时选择两年内月份。只能一年年选,第二,一个个勾月份太麻烦。第三,也是最主要的问题,就是重新update起来比较麻烦。因为第一次提交是插入数据,之后就应该是update数据了,之后提交的时候,勾选的那个月份的多选框值为1,其他月份的值为0,这样的话,每次update,就会把原来的数据覆盖掉。
    第三个问题,我想只要实现每次都只提交有值的那一个月份就可以了,然后判断这个字段原来是否为0,如果为0则update,不为0则报错。但是这个“只提交有值的一个字段”的方法我不会。大家如有懂的人。可以教我一下。
    第二种,就是上述的方法,操作简单,但是有问题,就是不知道表字段应该如何设置。才能让操作者提交后,直接能在一个图标上看到自己需要的那段时间已经被显示出来了。即那几个月的状态值变化了。
    如果用我原来的表结构可不可以呢,比如。输入2007-1- 到2008-2 那么 就生成2条记录,一条 nf 2007 yf01-yf12值都为1,一条nf2008,yf1-2值为1.想不出可以变成这样的办法。大家帮忙想想,如何设置表结构,可以实现我需要的功能。其实就是在一个页面上提交时间类数据,在另一个日程表上显示状态变化,比如你1月要干什么事情了,选择2007-1 到2007-1,那么1月就变红了。你就知道,1月不能出行了。
      

  3.   

    多选框里可以年份和月一起放...
    2007-10
    2007-11
    2007-12
    2008-01
    这样, 选择的时候可以按shift键选一段或者用ajax做更好,显示一个月历让用户点击, 点那个月就update那个月的状态....你的表结构没问题, 反正是月份, 数据量不大如果要搞成区间当然也可以,就是update的时候要几个sql完成,稍微麻烦一点
      

  4.   

    或者用ajax做更好,显示一个月历让用户点击, 点那个月就update那个月的状态.... 谢谢大侠指点,请假一下ajax是什么,怎么用。再次谢谢。