MSSQL约会到PHP

时间:2015-08-28 19:55:35

标签: php sql-server date datetime

我已经广泛搜索过,看过各种stackoverflow解决方案,但这里没有任何工作。不知道为什么。帮助会很棒!

日期存储在MSSQL的smalldatetime字段中。这个值被视为" 2015-11-27 00:00:00"。这似乎与mySQL中的日期格式相同。如果粘贴了值,则下面的示例有效,但不记录记录集中的值。

    //gives correct result, 11/27/2015
    $TravDate = date("m/d/Y", strtotime("2015-11-27 00:00:00"));

    //gives wrong result, 12/31/1969
    $TravDate = date("m/d/Y", strtotime($obj->TravDate));

3 个答案:

答案 0 :(得分:2)

请尝试

  $datetime = new DateTime( $obj->travdate); //create datetime object with received data
    $reform = $datetime->format('Y M d');   //do reformat as required

请参阅http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/

答案 1 :(得分:0)

确保 $ obj-> TravDate 序列化为字符串是正确的,可能解决的值不正确。首先尝试使用字符串化并使用strtotime()函数。

答案 2 :(得分:0)

找到解决方案。我放弃了上面的PHP方法:它适用于记录集中的所有其他变量,但日期字段TravDate除外,它是 null。

解决方案涉及通过转换日期字段来更改SQL查询,如下所示: - CONVERT(varchar(10),TravDate,20)AS TravDate(php echo给11/27/2015)。 此解决方案位于stackoverflow