1

我正在将一个值列表传递给一个函数,以在特定类型的值之间进行转换。例如,如果传递了一个 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() 函数的意外结果

谢谢!

4

0 回答 0