我正在将一个值列表传递给一个函数,以在特定类型的值之间进行转换。例如,如果传递了一个 PHP 日期,或者传递了一个时间戳,我想转换为特定的日期格式。这是我现在拥有的代码:
public static function attemptParseString($str) {
$check = strtotime($str);
if ($check !== FALSE) {
return date(ts_default_date_format, $check).' <span class="grey">(Orig: '.$str.')</span>';
}
$check = date(ts_default_date_format, $str);
if ($check !== FALSE) {
return $check.' <span class="grey">(Orig: '.$str.')</span>';
}
return $str;
}
大多数日期值(如“1361215542”和“2013-02-18 13:25:42”)按预期返回,但我遇到了一些奇怪的问题,例如“127.0.0.1”解析为“1969-12-31 18”: 02:07','GET' 解析为 '2013-02-18 04:25:42' 和 '80' 解析为 '1969-12-31 18:01:20'。
除了检查日期函数是否将其解析为日期之外,我如何智能地确定字符串是否为有效日期?
我见过类似的问题,如下所示,但它们并不完全正确(有些是不同的编程语言,有些包含所有有效日期但格式不同[而我包含日期和非日期字符串)。
使用 Universal Feed Parser 获取日期的问题 所有格式的日期解析器 Date() 函数的意外结果
谢谢!