使用am / pm创建php时间戳

时间:2010-02-18 21:26:10

标签: php timestamp

我有几个文本框,允许一个人输入时间和日期。输入时间为文本框数小时,文本框为分钟,下拉为上午/下午,一些下降为几个月/小时/年

所以,我想结合所有这些来创建一个时间戳并将其保存到数据库中。

但是我对如何做到这一点来创建一个合适的时间戳感到困惑,特别是对于AM / PM部分。

4 个答案:

答案 0 :(得分:3)

听起来你只是使用mktime()。通过为pm添加12来获取正确的小时数,然后将参数传递给函数。

if($is_pm) $hour += 12;
$time = mktime($hour, $minute, $second, $month, $day, $year);

如果您正在寻找MySQL时间戳而不是UNIX时间戳,您有两种选择:

  1. 使用date()date('Y-m-d H:i:s', $time);
  2. 构建MySQL格式的时间戳
  3. 让MySQL为您完成:UPDATE table SET date = FROM_UNIXTIME($time) WHERE foo='bar'
  4. 或者您可以将整数时间戳作为整数存储在数据库中。

答案 1 :(得分:2)

strtotime会这样做:

$timestamp = strtotime("$year-$month-$day $hours:$minutes $am_pm");

确保零填充$ month,$ day,$ hours和$ minutes。

答案 2 :(得分:1)

假设您已经检查了有效输入,可以使用mktime()功能。如果选择了PM,则只需添加12小时。那会给你一个Unix时间戳。您可以将结果传递给date(),以便根据需要格式化日期。

答案 3 :(得分:-2)

您可以使用以下内容将其转换为unix时间戳:

strtotime("2009/01/02 12:13:14 PM");
strtotime("2009/01/02 12:13:14 AM");

PHP手册参考:http://php.net/manual/en/function.strtotime.php