将用户输入日期和时间更改为unix时间戳

时间:2013-01-06 10:24:33

标签: php unix-timestamp strptime

我有一个用户输入,用户输入时间和日期为'9.30am'和'01 / 02/2012'。我试图将此转换为unix时间戳,以帮助将数据拖回数据库时排序,但strptime()让我感到困惑,因为我不确定这是否实际上返回了我需要的unix时间戳。

4 个答案:

答案 0 :(得分:1)

您可以使用:strtotime

PHP.net示例:

echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";

答案 1 :(得分:0)

你可以使用strtotime()

通过输入变量来调用它。

strtotime(“9.30 1/2/2012”);

http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:0)

$date = DateTime::createFromFormat('H:ia d/m/Y' '9:30am 1/2/2012');
$timestamp = $date->getTimestamp();

您正在寻找什么。 http://www.php.net/datetime

答案 3 :(得分:0)

使用PHP的内置DateTime类......

$objDate = DateTime::createFromFormat('H:ia d/m/Y', '9:30am 1/2/2012');
$timestamp = $objDate->getTimestamp();

...返回一个Unix时间戳。

文档:

  1. PHP DateTime Class

    一个。 DateTime::createFromFormat

    DateTime::getTimestamp

  2. 要添加变量,请使用它......

    $objDate = DateTime::createFromFormat('H:ia d/m/Y', "$time $date");
    $timestamp = $objDate->getTimestamp();
    

    或者...

    $time_date = sprintf("%s %s", $time, $date); // concatenates into a single var
    $objDate = DateTime::createFromFormat('H:ia d/m/Y', $time_date);
    $timestamp = $objDate->getTimestamp();
    

    注意:确保您的变量符合以下内容......

    $time = hh:mm(并附加“am”或“pm”)

    $date = dd / mm / yyyy