【问题标题】:Laravel Carbon - Reloading Current TimeLaravel Carbon - 重新加载当前时间
【发布时间】:2017-08-29 16:34:52
【问题描述】:

我找不到任何与我要解决的问题相关的文档,因此我在这里询问。

我的控制器使用这个来提取碳日期:

$utctime = Carbon::now()->toTimeString();

该代码允许我在我的页面上显示 UTC 时间。问题在于,Carbon 只加载一次时间(在页面加载时)并且它停留在那个时间。我想要的是让 Carbon 实时显示而不需要重新加载页面。

我猜可能无法及时更新,因为 Carbon 不是前端?如果是这样,您将如何让时间每秒更新而不是根本不更新? - 也许有一些我可以使用的前端的东西?

【问题讨论】:

  • 像某种时钟,对吧?
  • 为什么不在页面加载时拉一次,然后让 JavaScript 继续更新呢?
  • @Hackerman 是的,没错。
  • @Giedrius 我想这将是最好的方法! (除非有“碳”方式来做到这一点。)
  • 我正是要指出这一点......一个带有 javascript 的时钟例程......@spacetravel 你能发布你在视图中渲染$utctime 的代码吗?

标签: javascript php laravel php-carbon


【解决方案1】:

在 Javascript 中添加一个基本的时钟非常简单:

<div id="time"></div>

<script type="text/javascript">
  function showTime() {
    var date = new Date(),
        utc = new Date(Date.UTC(
          date.getFullYear(),
          date.getMonth(),
          date.getDate(),
          date.getHours(),
          date.getMinutes(),
          date.getSeconds()
        ));

    document.getElementById('time').innerHTML = utc.toLocaleTimeString();
  }

  setInterval(showTime, 1000);
</script>

这将完全基于前端,并确保最初呈现的服务器时间和用户本地时间之间没有“跳跃”。

【讨论】:

  • 是否可以输出 UTC 时间而不是我的本地时间?时钟工作,但它显示我的当地时间。谢谢!
  • @spacetravel 已编辑。 JS 确实不是处理日期最好的语言,所以如果你想做比这更复杂的事情,我建议你研究像 Moment.js 这样的库
【解决方案2】:

可以使用moment.js,也可以定义时区或者显示UTC时间

moment.utc().format();

https://momentjs.com/docs/ https://momentjs.com/timezone/docs/

【讨论】:

    猜你喜欢
    • 2015-12-19
    • 1970-01-01
    • 2021-08-14
    • 2021-05-10
    • 2013-03-19
    • 2017-04-28
    • 2021-06-29
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多