date
将服务器的时间格式化。语法: string date(string format, int [timestamp]);返回值: 字符串函数种类: 时间日期
 
 
内容说明 
返回值的字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间格式化返回。要将日期转为其它的语系格式,应使用setlocale() 及 strftime() 二个函数。字符串格式化的选项如下:
a - "am" 或是 "pm" 
A - "AM" 或是 "PM" 
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" 
D - 星期几,三个英文字母; 如: "Fri" 
F - 月份,英文全名; 如: "January" 
h - 12 小时制的小时; 如: "01" 至 "12" 
H - 24 小时制的小时; 如: "00" 至 "23" 
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" 
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" 
i - 分钟; 如: "00" 至 "59" 
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" 
l - 星期几,英文全名; 如: "Friday" 
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" 
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" 
M - 月份,三个英文字母; 如: "Jan" 
s - 秒; 如: "00" 至 "59" 
S - 字尾加英文序数,二个英文字母; 如: "th","nd" 
t - 指定月份的天数; 如: "28" 至 "31" 
U - 总秒数 
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) 
Y - 年,四位数字; 如: "1999" 
y - 年,二位数字; 如: "99" 
z - 一年中的第几天; 如: "0" 至 "365" 
其它不在上列的字符则直接列出该字符。 
 
 
使用范例 
范例一:
<?
print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
?>范例二:
<?
$tomorrow  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"),  date("Y"));
$nextyear  = mktime(0,0,0,date("m"),  date("d",   date("Y")+1);
?>

解决方案 »

  1.   

    既然已知道日期,还要求年月日,好像有点多余
    <?php
    $t='2007-01-23';
    $y=date('Y',mktime($d));
    $m=date('m',mktime($d));
    $d=date('d',mktime($d));
    echo '年:'.$y.'<br>';
    echo '月:'.$m.'<br>';
    echo '日:'.$d.'<br>';echo '星期:'.riqi($y,$m,$d);
    function riqi($y,$m,$d) {
      if($m==1 || $m==2) {
        $m += 12;
        $y--;
      }
      $t = $d+2*$m+bcdiv(3*($m+1),5,0)+$y+bcdiv($y,4,0)-bcdiv($y,100,0)+bcdiv($y,400,0);
      return ($a+1)%7;
    }
    ?>
      

  2.   

    sorry,有误
    <?php
    $t='2007-01-23';
    $y=date('Y',mktime($t));
    $m=date('m',mktime($t));
    $d=date('d',mktime($t));
    echo '年:'.$y.'<br>';
    echo '月:'.$m.'<br>';
    echo '日:'.$d.'<br>';echo '星期:'.riqi($y,$m,$d);
    function riqi($y,$m,$d) {
      if($m==1 || $m==2) {
        $m += 12;
        $y--;
      }
      $t = $d+2*$m+bcdiv(3*($m+1),5,0)+$y+bcdiv($y,4,0)-bcdiv($y,100,0)+bcdiv($y,400,0);
      return ($a+1)%7;
    }
    ?>
      

  3.   

    date("l", mktime($_POST['t']))
    我这是这么用的,但求出的值都是4。post过来的格式如2006-12-21.
      

  4.   

    按楼上yiwusuo说的年不管传过来日期是什么,都是2007 月 04 日16 星期 1。
    看我写的有问题吗?  $y=date('Y',mktime($curdate));
       $m=date('m',mktime($curdate));
       $d=date('d',mktime($curdate));
       echo $curdate; 
       echo '年:'.$y.'<br>';
       echo '月:'.$m.'<br>';
       echo '日:'.$d.'<br>';   function riqi($y,$m,$d) {
        if($m==1 || $m==2) {
        $m += 12;
        $y--;
       }
        $t = $d+2*$m+bcdiv(3*($m+1),5,0)+$y+bcdiv($y,4,0)-bcdiv($y,100,0)+bcdiv($y,400,0);
        return ($a+1)%7;
       }
       echo '星期:'.riqi($y,$m,$d);
      

  5.   

    你不会百度一下啊
    <?php
    $t='2007-01-23';
    $y=date('Y',mktime($t));
    $m=date('m',mktime($t));
    $d=date('d',mktime($t));
    echo '年:'.$y.'<br>';
    echo '月:'.$m.'<br>';
    echo '日:'.$d.'<br>';$sdateline=strtotime($t);   
    $xingqi=date("w",$sdateline);   echo '星期:'.$xingqi;?>
      

  6.   

    yiwusuo你如果不愿意回答,我也没请你回答!
    我要是搜到了也不上来问了!
      

  7.   

    再来
    <?php
    $t='2007-01-24';
    $s=strtotime($t);  
    echo '<br>年:'.date("Y",$s);
    echo '<br>月:'.date("m",$s);
    echo '<br>日:'.date("d",$s);$xingqi=date("w",$s);   echo '<br>星期:'.$xingqi;?>
      

  8.   

    $t = strtotime('2007-01-23');printf("年 %s<br/>", date('Y', $t));
    printf("月 %s<br/>", date('m', $t));
    printf("日 %s<br/>", date('d', $t));
    printf("星期(0表示星期天)%s<br/>", date('w', $t));
    printf("第 %s 周<br/>", date('W', $t));
    printf("本月共 %s 天<br/>", date('t', $t));
    printf("本年第 %s 天<br/>", date('z', $t));
      

  9.   

    如 xuzuning(唠叨)  所言,strtotime出现后,这个问题变得简单了,它是一个十分强大的函数,可以取多种格式的日期(包括 "last monday" 这样的),然后再用date输出