我正在使用strtotime
字符串描述向前或向后移动的时间量来获取一些相对时间戳,即“+1 小时,15 分钟”,“-2 小时,45 分钟”。
这完美地工作:
$ds = strtotime('02/20/11 09:30:00 -1 hour');
但是,如果是“-1 小时,15 分钟”,strtotime
似乎是减去小时,然后加上 15 分钟。
我用逗号试了一下:http: //codepad.org/3dq7c2GM
我来到这里,看到了一个关于这个的先前问题,并在没有逗号的情况下尝试了它:http: //codepad.org/G8gm8E84
仍然没有运气。我试过使用相对参数:http ://codepad.org/nwZ9ZqOv 什么都 没有。
我找到了自己的解决方案,这非常不直观,我不确定我是否遗漏了某些东西,或者甚至可能错误地处理了这个问题。工作版本最终是:
$ds = strtotime('02/20/11 09:30:00 -1 hour -15 minutes');
我在这里错过了什么吗?文档中没有提到这种行为。此外,是否有更好的方法来使用基于字符串的持续时间来获取此类相对时间戳?
编辑
编辑添加这些字符串的来源 - 它们来自通过 AJAX 的用户界面。有些表单控件具有 +/- 按钮,可按 15 分钟间隔增加/减少显示字段中的持续时间。当它们发生变化时,AJAX 请求将这些值触发到服务器,通过 转换为纪元时间戳strtotime
,然后存储在数据库中。