将日期转换为时间戳

时间:2016-09-29 15:59:26

标签: php

好的,基本上我有两个变量,一个名为$day,另一个名为$time我想要做的就是将这两个变换为一个unix时间戳,例如;

$day = 'Monday';
$time = '14:00:00';

所以我正在寻找的是一个$timestamp变量,它会以unix时间戳格式回显Monday的{​​{1}}。

我猜这个最困难的部分是这一天不是特定日期更多的一周,这意味着它必须选择下一个14:00:00即将到来,或下一个{ {1}}例如。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

DateTime类的构造函数非常擅长解决这类问题:

<?php
$day = 'Monday';
$time = '14:00:00';

$date = new DateTime("next $day $time");
echo $date->getTimestamp();
// 1475503200

答案 1 :(得分:0)

$datetime = new DateTime();
echo $datetime->format('U');

解决方案一:

mktime - 获取日期的Unix时间戳

echo mktime(23, 24, 0, 11, 3, 2009);
1257290640

返回与给定参数对应的Unix时间戳。此时间戳是一个长整数,包含Unix Epoch(1970年1月1日00:00:00 GMT)与指定时间之间的秒数。

可以从右到左依次排除参数;这样省略的任何参数将根据本地日期和时间设置为当前值。

mktime($isAM ? $hrs : ($hrs + 12), $mins, $secs, $m, $d, $y);

要处理AM / PM,如果是PM,则只需添加12小时。

解决方案二:

strtotime返回成功时间戳,否则返回FALSE。

echo strtotime('2012-07-25 14:35:08' );

<强>输出:

1343219708