0

在 PHP (Ubuntu / PHP 5.2.4) 中查询 SQL Server (MSSQL) 列,我的日期列看起来像这样:

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

strtotime 不会解析它们。

试过这个:

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 不是一个选项。

4

2 回答 2

3

我建议您使用(24h) 格式SELECT ... CONVERT(VARCHAR(19), dateColumn, 120) ...选择日期- 这可以确保无损转换YYYY-MM-DD HH:MM:SSstrtotime()

于 2013-05-31T07:54:43.817 回答
0

有可能date_parse_from_format可以将其解析为关联的数组。使用此数组,您可以创建新的时间字符串。

http://www.php.net/manual/en/function.date-parse-from-format.php

于 2013-05-31T07:54:28.737 回答