我已经广泛搜索过,看过各种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));
答案 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。