php日期字符串到时间戳 - inverse_date()

时间:2012-03-27 16:17:06

标签: php parsing date inverse

我正在寻找一个与date()相反的函数。含义:

$timestamp = inverse_date($format_string, $date_string);
$d = date($format_string, $timestamp);
if ($d === $date_string) {
    echo 'This is what I want';
}

到目前为止我遇到的问题:

strtotime - 猜测格式,因此它可能不适合所有格式

strptime - 使用与日期不同的strftime格式

SOLUTION:

function inverse_date($format_string, $date_string) {
    $dateTime = date_create_from_format($format_string, $date_string);
    $value_ts = date_format($dateTime, 'U');
    return $value_ts;
}

感谢Till Helge Helwig的链接。

2 个答案:

答案 0 :(得分:0)

function inverse_date($format_string, $date_string) {
    $dateTime = date_create_from_format($format_string, $date_string);
    $value_ts = date_format($dateTime, 'U');
    return $value_ts;
}

答案 1 :(得分:-1)

PHP5.3以下,最好的选择是strtotime()。它很好地猜测了时间

使用mktime() Doc here 如果您有日期并知道它的格式,只需使用explode(),您就必须预先设置您期望的格式:

示例:

define('DMY4', 'dd-mm-yyyy');
// Other similar defines with all formats expected

function inverse_date($format_string, $date_string) {
    $d = 0;
    $m = 0;
    $y = 0;
    $h = 0;
    $i = 0;
    $s = 0;
    switch ($format_string) {
            case DMY4:
                list($d, $m, $y) = explode('-', $date_string);
                break;
            // etc...
    }
    $time = mktime($h, $m, $s, $m, $d, $y);
}
相关问题