13

我正在尝试从用户的当前日期开始创建一个选择列表。我希望它以 unix 时间戳格式设置为午夜。

这就是我正在做的一切:

$today = strtotime('today');
echo $today;

这是我的结果:

1333144800

即:根据 Epoch Converter,2012 年 3 月 30 日星期五 22:00:00 GMT(不正确几个小时。)

4

5 回答 5

26

如果您希望 strtotime() 返回相对于 UTC 的时间戳(00:00:00 UTC 而不是例如 00:00:00 UTC+2,如果您的系统设置为相对于 UTC/GMT 偏移 2 小时的时区),您需要指定:

$today = strtotime('today UTC');
于 2012-03-31T16:34:16.167 回答
6

格林威治标准时间 (+0) 时间

echo $today = strtotime('today GMT');
echo "<br>" . $today = date("d-m-Y H:i:s", $today);

我们希望您的服务器在 GMT 运行 - 这是最好的(用于稍后显示时间的操作)。如果没有,你必须调整 php.ini 设置这个“date.timezone = GMT”。

完成后,您将看到 00:00 和我的代码。

然后,您必须在脚本中开发函数(即 DisplayDate())以正确显示您网站的日期,如果

  • 你不在 GMT 地区
  • 或/和如果您希望您的用户通过时区选择来查看他们的时区中的时间。

DisplayDate() 还应包括对日光变化的支持(0 或 +1 小时/夏季和冬季时间)。

于 2012-03-31T17:12:16.570 回答
3
strtotime( $time )

旨在返回一个 unix 时间戳,这意味着它将返回自 1970 年 1 月 1 日以来的秒数。http://www.php.net/manual/en/function.strtotime.php

要解决此问题,请使用以下内容:

$today = date("d/m/Y H:i:s", strtotime('today'));
echo $today;
于 2012-03-31T16:36:30.473 回答
1

您可能必须专门设置时间和日期:

$today_midnight = strtotime('today UTC 00:00');
于 2012-03-31T16:47:32.617 回答
0

您应该检查 php.ini 文件中的时区配置。就我而言(我住在萨尔瓦多),我不得不像这样改变它:

date.timezone = America/El_Salvador
于 2012-03-31T16:36:17.010 回答