2

我正在尝试获取时间戳:“小时:分钟上午/下午月/日/年”,但它似乎无法正常工作。它需要按什么顺序排列?

我当前订单的示例:2012 年 4 月 19 日上午 11:59

4

5 回答 5

3

这是您将询问的格式化日期/时间字符串转换为时间戳的方式:

$date_string = '11:59 am, 04/19/2012';
$dateTime = DateTime::createFromFormat("H:i a, m/d/Y", $date_string);
$timestamp = $dateTime->getTimestamp();
echo $timestamp;

输出:

1334833140
于 2012-04-18T15:55:15.747 回答
2

将日期放在时间之前:

echo strtotime('04/19/2012 11:59 am');
于 2012-04-18T15:32:13.987 回答
2

我相信它会类似于这个

echo strtotime(date("Y-m-d H:i:s"));

所以顺序是

年月日时:分:秒

我还假设 strtotime 足够聪明,可以知道不同的日期格式,因此您应该对日期格式没问题,只需将其作为第一部分和之后的时间。

于 2012-04-18T15:32:21.747 回答
1

尝试删除 am: 之后的以下字符

例如使用这个:

strtotime("11:59 am 04/19/2012")
于 2012-04-18T15:32:38.807 回答
0

如果我正确理解了您的问题,则需要解析以date()从时间戳中获取所需格式的字符串是:

date("H:i a, m/d/Y", $timestamp);

更多格式字符可以在文档中找到,这里


strtotime()不会将您提供的日期格式转换为时间戳,但是更强大和通用的DateTime类可能能够。

于 2012-04-18T15:31:59.353 回答