在PHP中将Sql Server(MSSQL)datetime列转换为Unix时间

在PHP中将Sql Server(MSSQL)datetime列转换为Unix时间,php,sql-server,datetime,Php,Sql Server,Datetime,在PHP(Ubuntu/PHP5.2.4)中查询SQL Server(MSSQL)列时,我的日期列显示如下: 2013年5月16日12:00:00:000上午 strotime不会解析它们 我试过这个: preg_match("/^([a-zA-Z]{3}) ([0-9]{1,2}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}):[0-9]{3}([apmAPM]{2})$/",$time_string,$regs); $month = $regs[1]

在PHP(Ubuntu/PHP5.2.4)中查询SQL Server(MSSQL)列时,我的日期列显示如下:

2013年5月16日12:00:00:000上午

strotime不会解析它们

我试过这个:

preg_match("/^([a-zA-Z]{3}) ([0-9]{1,2}) ([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2}):[0-9]{3}([apmAPM]{2})$/",$time_string,$regs);
$month = $regs[1];
$day = $regs[2];
$year = $regs[3];
$hour = $regs[4];
$minute = $regs[5];
$second = $regs[6];
$ampm = $regs[7];
$converted_time_string = $month." ".$day." ".$year." ".$hour.":".$minute.":".$second.$ampm;

$actual_time = strtotime($converted_time_string);

return $actual_time;
但它在某些日期上遇到了问题,例如:

2013年8月1日12:00:00:000上午


关于如何做到这一点,还有更可靠的建议吗?升级PHP目前不是一个选项。

可能是
date\u parse\u from\u format
可以将其解析为关联数组。使用此数组可以创建新的时间字符串


有可能
date\u parse\u from\u format
可以将其解析为关联数组。使用此数组可以创建新的时间字符串


我建议您使用
选择。。。CONVERT(VARCHAR(19),dateColumn,120).
YYYY-MM-DD HH:MM:SS
(24小时)格式选择日期-这确保了使用
strottime()

进行无损转换。我建议您使用
选择。。。CONVERT(VARCHAR(19),dateColumn,120).
YYYY-MM-DD HH:MM:SS
(24小时)格式选择日期-这确保了使用
strottime()进行无损失转换。