【问题标题】:Datetime created in php is not been refreshed in firefox在 php 中创建的日期时间在 Firefox 中未刷新
【发布时间】:2023-03-11 11:04:01
【问题描述】:

我有一个明星时间,我添加了一些分钟。之后,我将新的日期时间存储在一个新的变量中并打印它。问题是当我在 Firefox 中刷新页面时,不会打印新的日期时间。另一方面,当我使用 chrome 时,我可以在刷新页面时看到新的日期时间。

这是我的代码:

<?php
$minutes_to_add = 5;

$start =new DateTime(date('Y-m-d H:i:s'));

$start->add(new DateInterval('PT' . $minutes_to_add . 'M'));

$end = $start->format('Y-m-d H:i:s');

echo $end;

任何回复都会有所帮助!

【问题讨论】:

  • 尝试清除firefox缓存并刷新。
  • 清除缓存或控制它的一种非常常见且首选的方法是将时间戳也附加到 URL...如果它是静态/非变量 url,例如 bla.html 或 bla.php任何 URL 参数.. 然后您将需要应用标头.. 但是您使用 PHP.. 听起来您需要禁用缓存以用于开发目的...谷歌会很容易地回答这个问题。

标签: php google-chrome datetime firefox


【解决方案1】:

我想建议清除您的 Firefox 缓存。这可以通过按CTRL + F5 来完成。

还有一件事,而不是:

$start =new DateTime(date('Y-m-d H:i:s'));

你也可以使用:

$start = new DateTime('now');

或者简单地说:

$start = new DateTime();

【讨论】:

    【解决方案2】:

    您的浏览器很可能正在缓存请求。您可以手动清理浏览器缓存以查看更新后的结果,但访问您页面的其他用户也会遇到同样的问题。

    可以通过您从 PHP 脚本发送的 HTTP 标头来控制浏览器如何缓存请求。

    您是否正在以某种方式在另一个 php 文件中操作缓存标头?浏览器的默认行为是不缓存您的页面。

    要明确告诉浏览器不要缓存您的页面,请使用以下 PHP 代码

    header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
    header("Pragma: no-cache"); //HTTP 1.0
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    

    PS:它在 Chrome 而不是 Firefox 上运行的事实可能是因为您在 chrome 中完全禁用了缓存(例如,通过打开开发工具)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多