【问题标题】:#php compare two times with strtotime parse function doesn't work#php 与strtotime 解析函数比较两次不起作用
【发布时间】:2015-08-28 22:04:35
【问题描述】:

我正在努力比较两次。

$t1 = "55:10.01";
$t2 = "11.2";

$res = strtotime($t1) > strtotime($t2);
print($t1.' > '.$t2.' = '.($res?'TRUE':'FALSE'));

结果是假的。如果我理解正确,PHP 文档说字符串 $t1 和 $t2 都应该由 strtotime 解析,但是...... :)

知道我做错了什么吗? :)

【问题讨论】:

  • 11.2.不是有效的日期格式。因此strotime() 返回 false。还有,什么的 11.2?起司?你必须帮助 PHP 并让它更好地了解你在做什么。
  • 好吧,实际上 strtotime($t1) 返回 false,而 $t2 似乎没问题(11.2 秒)。参考php.net/manual/en/datetime.formats.time.php 我认为这两个时间都是正确的。另一个答案是我根本不明白...
  • Buddhi Abeyratne - 我的错误,应该有 $t1 和 $t2 代替。我刚刚纠正了这一点。
  • strtotime 真的很糟糕。相信连php自己都不知道哪种格式适合那个!搜索 DateTime 的 createFromFormat 方法。抱歉,我现在很累了!
  • @Ahmad 为什么说它是一个有用的功能,只是在这种情况下被误用,它很容易通过将事物编码为 un​​ix 时间来简化生活

标签: php time compare strtotime


【解决方案1】:

试试

$t1 = "55:10.01";
$t2 = "11.2";
if (date($t1) > date($t2)){
  $res = 'true';
}else{
  $res = 'false';
}
print($t1.' > '.$t2.' = '.$res);

【讨论】:

  • 那么有什么区别呢?
  • 等等,我知道为什么这是错误的,这是 unix 时间,更重要的是不知道它认为它是整数的时间等待我修复我的代码
  • 没错,它工作正常! :) 但令人困惑 - 日期功能比专门的时间功能更好......无论如何,谢谢! :)
  • 您的代码运行良好,顺便说一句,我在进一步测试时一开始没有发现这一点,我看到您尝试strtotime 55 小时您不能在 24 小时内做到这一点。所以你的代码工作正常你的测试场景是错误的。我们称自己为傻瓜
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多