请教一个问题!如何根据当前的时间,得到上个月月初的日子和月末的日子!还有这一个季度的初的日子和季度末的日子!例如:今天是2010-05-31日!我想得到上个月月初时间 2010-04-01  月末时间 2010-04-30还有季度初的时间 2010-04-01 季度末时间 2010-06-30请各位前辈赐教!还有个问题就是闰年的问题!万一遇到取的上月时间正好是2月份!!2月份最后一天有可能是28日,有可能是29日!怎么办!请各位前辈赐教!

解决方案 »

  1.   

    date('j');
    打出一个31 这个31是这个月的月末31吧!那月初那怎么得到那!
      

  2.   

    date('j') 只是今天的日子!!但是我还是没得到月初和月末的时间!
      

  3.   

    date('L');是否人年,哈哈,照着念
      

  4.   

    format 字符 说明 返回值例子 
    a 小写的上午和下午值 am 或 pm 
    A 大写的上午和下午值 AM 或 PM 
    B Swatch Internet 标准时 000 到 999 
    d 月份中的第几天,有前导零的 2 位数字 01 到 31 
    D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun 
    F 月份,完整的文本格式,例如 January 或者 March January 到 December 
    g 小时,12 小时格式,没有前导零 1 到 12 
    G 小时,24 小时格式,没有前导零 0 到 23 
    h 小时,12 小时格式,有前导零 01 到 12 
    H 小时,24 小时格式,有前导零 00 到 23 
    i 有前导零的分钟数 00 到 59> 
    I 是否为夏令时 如果是夏令时为 1,否则为 0 
    j 月份中的第几天,没有前导零 1 到 31 
    l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday 
    L 是否为闰年 如果是闰年为 1,否则为 0 
    m 数字表示的月份,有前导零 01 到 12 
    M 三个字母缩写表示的月份 Jan 到 Dec 
    n 数字表示的月份,没有前导零 1 到 12 
    O 与格林威治时间相差的小时数 例如:+0200 
    r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200 
    s 秒数,有前导零 00 到 59> 
    S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用。 
    t 给定月份所应有的天数 28 到 31 
    T 本机所在的时区 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。 
    U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 参见 time() 
    w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六) 
    W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周) 
    Y 4 位数字完整表示的年份 例如:1999 或 2003 
    y 2 位数字表示的年份 例如:99 或 03 
    z 年份中的第几天 0 到 366 
    Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200 
      

  5.   

    date('Y-m-1',strtotime('-1 month'));上月初
    date('Y-m-t',strtotime('-1 month'));上月末
    闰年也没关系的。
    季度自己写个函数
    date('m')月份在哪一个季度这个是死的,各季度的第一天最后一天也是死的。
      

  6.   

    对不住啊,这么写是不对的,php中 -1 month 等价于 -30 days
    当某月有31天的时候返回的值是错误的。
    这么写
    $d=(int)date('d');
    date('Y-m-t',strtotime("- $t days"));上月末。
    $t=date('Y-m-1',strtotime("- $t days"));上月初。
      

  7.   

    我晕,写的是啥啊。下面这个
    $d=(int)date('d');
    date('Y-m-t',strtotime("- $d days"));上月末。
    date('Y-m-1',strtotime("- $d days"));上月初。