date('Y-m-d',strtotime($row['somedate']));

解决方案 »

  1.   

    谢谢回复
    用date('Y-m-d',strtotime($row['somedate']));得到的是1970-01-01
    不过如果用date('Y-m-d',time());就可以得到今天的日期。
    我估计是因为无法识别“2007 四月 6 21:23”这个字符串的问题
      

  2.   

    $s = "2007-04-06 21:23:00.000";
    $t = explode(" ",$s);
    echo $t[0];
      

  3.   

    楼上的方法也不行,因为得到的时间字符串是2007 四月 6 21:23
    explode(" ","2007 四月 6 21:23")[0] = "2007"
      

  4.   

    在库里看到的时间是:2007-04-06 21:23:00.000
    用PHP显示出来的却是:2007 四月 6 21:23你用PHP是怎么显示的???直接用echo??
      

  5.   

    我是初学者,没用过php5的,有个笨方法,不知道可行否,你可以试下。$s = "somedate";
    $t = explode(" ",$s);if ($t[1]=="一月") $month="01";
    if ($t[1]=="二月") $month="02";
    if ($t[1]=="三月") $month="03";
    if ($t[1]=="四月") $month="04";
    if ($t[1]=="五月") $month="05";
    if ($t[1]=="六月") $month="06";
    if ($t[1]=="七月") $month="07";
    if ($t[1]=="八月") $month="08";
    if ($t[1]=="九月") $month="09";
    if ($t[1]=="十月") $month=10;
    if ($t[1]=="十一月") $month=11;
    if ($t[1]=="十二月") $month=12;echo $t[0]."-".$month."-".$t[2];
      

  6.   

    我是用echo直接以字符串形式显示出来的。
    你用的方法我也想过,不过我觉得对于这种格式的时间应该有相应的方法或函数来格式化。
      

  7.   

    $s = "somedate";
    $t = explode(" ",$s);switch ($t[1])
      case "一月":
        $month="01";
        break;
      case "二月":
        $month="02";
        break;
      case "三月":
        $month="03";
        break;
      case "四月":
        $month="04";
        break;
      case "五月":
        $month="05";
        break;
      case "六月":
        $month="06";
        break;
      case "七月":
        $month="07";
        break;
      case "八月":
        $month="01";
        break;
      case "九月":
        $month="09";
        break;
      case "十月":
        $month=10;
        break;
      case "十一月":
        $month=11;
        break;
      case "十二月":
        $month=12;
        break;
    }echo $t[0]."-".$month."-".$t[2];
    练练手而已,不知道正确否....以上2种方式
      

  8.   

    $s="2007 四月 6 21:23";
    echo date("Y-m-d",strtotime($s));我在PHP4.4.6下面测试正常,不知道PHP5的行不行...
      

  9.   

    用switch和if应该是可行的,原理一样。不过我没做过测试。
    $s="2007 四月 6 21:23";
    echo date("Y-m-d",strtotime($s));
    在php5.1.2下等到的是1970-01-01
    这应该意味着$s得到的不是有效的时间字符串
      

  10.   

    这个是MSSQL的问题,他会调用系统的时间显示格式你可以用strtotime转化为UNIX时间戳后,然后用date函数
      

  11.   

    用strtotime得到的是空值,所以楼上的方法也不可行
      

  12.   

    看来是找不到人会了
    所以还是采用了boing()的方法
    结贴
      

  13.   

    那在查询语句中使用mssql函数取值试试。
    $sql = 'select substring(存储时间的字段,0,10) from table';
      

  14.   

    我是在SQL语句中加上一个字段:month(sj) month然后再用 $t = explode(" ",$s); 另外如果要用到时分的话,如果是9:59或10:00,分别在$[4]和$[3]显示时分用:echo $t[3]==""?$t[4]:$t[3];
      

  15.   

     date( 'Y-m-d ',$userinfo['lastvisit'])我是这样搞定的效果不错
      

  16.   

    假设我是用$rs["addtime"]来取得数据里记录添加的时间,我要把时间格式化成2010/10/11的格式,用下面的方法就行!
        date( 'Y-m-d ',strtotime($rs["addtime"])); 如果用的是date( 'Y-m-d ',$rs["addtime"])这样得到的时间是1970/01/01的格式。
      

  17.   

    <?php 
    echo date("Y-m-d",strtotime($row_rsLesson['N_Date']));
    ?> 将 $row_rsLesson['N_Date']) 改为你的时间记录字段内容 
    这里用到两个函数 一个 是date() 一个 是strtotime() date() :传入时间戳值,将时间戳格式化传回 strtotime () 将任何英文文本的日期时间描述解析为 UNIX 时间戳