php strotime()在Windows mac linux中产生不同的结果?

php strotime()在Windows mac linux中产生不同的结果?,php,date,time,Php,Date,Time,我想找到第二个未来日期-今天日期,但结果在所有平台上都不同,其中: mac:21343 ubuntu:68172和 窗口:50175 将秒转换为小时:分钟:秒后,差异约为10-15小时。有人知道其他类似于strotime的方法吗?可能是因为系统有不同的时区或系统时钟可能是因为系统有不同的时区或系统时钟可能是从您的服务器获取时间设置(时间可变),您可以在所有脚本上为其设置时区,以提供相同的值 $today = date("Y-m-d H:i"); $endtime = date("2011

我想找到第二个未来日期-今天日期,但结果在所有平台上都不同,其中:

  • mac:21343
  • ubuntu:68172和
  • 窗口:50175

将秒转换为小时:分钟:秒后,差异约为10-15小时。有人知道其他类似于strotime的方法吗?

可能是因为系统有不同的时区或系统时钟

可能是因为系统有不同的时区或系统时钟

可能是从您的服务器获取时间设置(时间可变),您可以在所有脚本上为其设置时区,以提供相同的值

$today   = date("Y-m-d H:i");
$endtime = date("2011-09-14 00:00");
$second  = abs(time() - strtotime($endtime, strtotime($today, 0)));

echo $second;

它可能从您的服务器(具有可变时间)获取时间设置,您可以在所有脚本上为它设置时区,以提供相同的值

$today   = date("Y-m-d H:i");
$endtime = date("2011-09-14 00:00");
$second  = abs(time() - strtotime($endtime, strtotime($today, 0)));

echo $second;

你把事情弄得很复杂<代码>日期(“2011-09-14 00:00”)毫无意义,只是
“2011-09-14 00:00”
会做同样的事情
strotime($today,0)
看起来也很奇怪。只有这样才行:

date_default_timezone_set('Europe/London');; //I usually put it at the top of the script

确保使用
date\u default\u timezone\u set
将所有系统上的时区设置为相同的,这可能是您的实际问题所在。

您使问题变得相当复杂<代码>日期(“2011-09-14 00:00”)毫无意义,只是
“2011-09-14 00:00”
会做同样的事情
strotime($today,0)
看起来也很奇怪。只有这样才行:

date_default_timezone_set('Europe/London');; //I usually put it at the top of the script

确保使用
date\u default\u timezone\u set
将所有系统上的时区设置为相同的,这可能是您的实际问题的根源。

您的代码过于复杂,有些奇怪,但@deceze的回答中已经指出了这一点,所以我不再重复

其他人也提出了你所看到的实际差异的可能原因,所以我也不会深入讨论

我要说的是,如果可能的话,我总是避免使用
strotime()
函数,因为它非常慢,并且当日期格式不明确时(即
dd-mm-yyyy
vs
mm/dd/yyyy
)可能会产生意外的结果。即使在像您这样输入不含糊的情况下,它仍然是一段非常慢的代码,因为它必须解析日期字符串,而不知道需要什么格式

如果你在做日期算术,PHP的最新版本提供了一个更好的选择。查看,以及中的其他功能。与您正在使用的旧式PHP技术相比,该类提供了更好的处理日期的功能

请注意,要从DateTime类中获得最佳效果,您需要运行最新版本的PHP-ie PHP5.3。但由于PHP5.2不再受支持,您确实应该确保您现在使用的是5.3


希望这能有所帮助。

您的代码过于复杂,有些奇怪,但@deceze的回答中已经指出了这一点,所以我不再重复

其他人也提出了你所看到的实际差异的可能原因,所以我也不会深入讨论

我要说的是,如果可能的话,我总是避免使用
strotime()
函数,因为它非常慢,并且当日期格式不明确时(即
dd-mm-yyyy
vs
mm/dd/yyyy
)可能会产生意外的结果。即使在像您这样输入不含糊的情况下,它仍然是一段非常慢的代码,因为它必须解析日期字符串,而不知道需要什么格式

如果你在做日期算术,PHP的最新版本提供了一个更好的选择。查看,以及中的其他功能。与您正在使用的旧式PHP技术相比,该类提供了更好的处理日期的功能

请注意,要从DateTime类中获得最佳效果,您需要运行最新版本的PHP-ie PHP5.3。但由于PHP5.2不再受支持,您确实应该确保您现在使用的是5.3


希望有帮助。

那么有没有办法在php中设置时区或系统时钟?@biokev
date\u default\u timezone\u set
那么有没有办法在php中设置时区或系统时钟?@biokev
date\u default\u timezone\u set
谢谢提供更多信息,因为我需要将这个项目提交给我的讲座,php版本可能低于5.3,所以我不能使用它。@bitokeev-你仍然可以使用5.2中的date类;只是不是全部——例如我认为
datediff()
是在5.3中添加的。但是,即使是5.2版本也比您现在所做的要好。感谢您提供更多信息,因为我需要将此项目提交给我的讲座,而php版本可能低于5.3,因此我无法使用它。@bitokeev-您仍然可以使用5.2中的date类;只是不是全部——例如我认为
datediff()
是在5.3中添加的。但即使是5.2版本也比你现在做的要好。