【问题标题】:Update DOM and send current time更新 DOM 并发送当前时间
【发布时间】:2018-06-12 06:46:05
【问题描述】:

我试图在单击按钮时发送当前时间,但我得到的是加载页面的时间而不是当前时间。该按钮使用 API 在 Google 工作表上提交表单。

获取时间的PHP代码:

<?php 
    date_default_timezone_set("Europe/Athens"); 
    echo date("d-m-Y"). " at ".date("h:i:sa"); 
?>

完整代码:

<input id="timeSubmit" class=" w3-text-black" name="time submitted"/>

<script>
    $( "#button" ).submit(function( event ) {
        event.preventDefault();  

        $("#timeSubmit").val('<?php date_default_timezone_set("Europe/Athens");
        echo date("d-m-Y"). " at ".date("h:i:sa")); ?>';
    });
</script>

问题:

我得到的是加载 DOM 的时间,而不是点击按钮的当前时间。

【问题讨论】:

  • 当然,因为 PHP 会在页面发送到浏览器之前对页面进行一次预处理 - 您需要使用 javascript Date 对象来获取浏览器中的日期跨度>
  • 只需用以下代码更改代码:$("#timeSubmit").val(new Date())

标签: javascript php jquery dom


【解决方案1】:

您正在使用服务器端页面来设置您的时区的日期和时间,这会将其转换为静态时间(例如,您的用户打开页面的时间,因为它是在上述时间为他们生成的)

您可以使用诸如 momentjs(或只是 new Date())之类的客户端库来设置单击按钮时的日期。这会使用当前浏览器的时间填充该字段。

【讨论】:

    【解决方案2】:

    当用户在访问网页时请求文件时,服务器会将文件发送到浏览器,这就是您的 php 代码所做的。所以你需要使用 JavaScript 来更新客户端的当前时间,像这样使用时间对象

    $("#timeSubmit").val(new Date().toLocaleString());
     // 6/12/2018, 9:56:35 AM
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 2019-05-06
      • 2014-04-30
      相关资源
      最近更新 更多