2016-09-29 236 views
1

好吧,所以基本上我有两个变量,一个叫做$day,另一个叫$time我试图做的是将这两个变量转换为unix时间戳,例如;将日期转换为时间戳

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

那么我现在寻找的是一个$timestamp变量,将回声出下一个Monday在UNIX时间戳格式上来的14:00:00

我猜这其中最难的部分是事实,即一天中的某一天不是特定日期,这意味着它将不得不选择下一个monday即将到来,或者下一个tuesday...例如。

感谢您的任何帮助。

+0

获取当前日期,将寻求到下周一,增加你的时间,并获得UNIX的时间戳。现在执行该代码 - 如果遇到任何问题,datetime函数的PHP文档非常好。 –

回答

4

DateTime类的构造是在搞清楚这样的事情就不错:

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

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

Thankyou;真的很欣赏那很多。解决我原来的问题将标记为答案很快:) –

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); 

要处理上午/下午只是添加12小时,如果PM。

解决方法二:

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

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

输出:

1343219708