根据时间更改file_get_contents的url


Change url of file_get_contents based on time

$string=file_get_contents("http://domain.com/api/data?after=1412640000");

我的PHP代码显示基于epoch时间的json数据。此时间始终为00:00:00 UTC。我需要url中的时间在不同的时间范围内更改,比如1天。

我可以在url中放入一个变量来获取当前时间,但我无法将其设置为00:00:00 UTC,以确定新的一天何时结束。

我已经搜索过了,一直得到部分结果,但不完全是我需要的。第一次在这里发帖。谢谢你的帮助。

编辑:我每天都要修改,但我需要另外两个时间框架,比如一周和一个月。

这是代码:

$daily = gmdate(strtotime('yesterday'));
$string = file_get_contents("http://domain.com/api/data?after={$daily}");

gmdate就是UTC的诀窍。现在是一周的时间框架。一个例子是显示一个月的2号日期,直到一周结束,然后显示从9号开始的新的每周日期。

strtotime比你想象的更强大,只是简单的工作方式:

strtotime("-1 week")
strtotime("-1 month")

好的,所以终于弄明白了。这是一个代码,用于输入从特定日期开始的epoch,时间间隔为每天、每周和每月,全部以UTC为单位。

$daily = gmdate(strtotime('yesterday'));
$string = file_get_contents("http://domain.com/api/data?after={$daily}");
$weekly = mktime(23, 59, 59, date('n'), date('j'), date('Y')) - ((date('N'))*3600*24);
$string = file_get_contents("http://domain.com/api/data?after={$weekly}");
$monthly = mktime(0, 0, 0, date('m'), 1, date('Y'));
$string = file_get_contents("http://domain.com/api/data?after={$monthly}");

每天$是最简单的$每周将从周一开始,直到下周一,这也是每月$的工作方式,但从1日开始。