簡體   English   中英

如何找到作為 PHP 響應獲得的兩個日期之間的差異? 我將響應日期存儲在兩個 javascript 變量中

[英]How to find difference between two dates obtained as a response from PHP? I'm storing the response dates in two javascript variables

function chatbox($to_user_id,to_name,from_name,$from_user_id,$user_last_activity) 
{
    var to_user_id = $to_user_id;
    var from_user_id = $from_user_id;
    var status = "";
    var last_seen = $user_last_activity;
    var current_time = "<?php
                          echo $current_timestamp = date("Y-m-d H:i:s");
                        ?>"; 
}

我正在使用 php 從數據庫中獲取 $user_last_activity 並將其傳遞給 javascript 函數聊天框。 我從 php 日期函數獲取當前時間。 如何比較這兩個 javascript 變量以獲取以秒、分鍾和小時為單位的時差。

請使用 php 作為

<script>
var date= "<?php echo $current_timestamp = date('Y-m-d H:i:s'); ?>";
</script>

請記住,您不能" in ' '字符串中使用" in ' '' in " "字符串中使用' in " "因為它會考慮字符串的終點。

修復報價問題后,這里還有另一個問題:

$current_timestamp = date("Y-m-d H:i:s")

這將產生格式(使用 moment.js 令牌)YYYY-MM-DD HH:mm:ss(例如 2020-03-08 16:38:21)的時間戳,ECMA-262 不支持該格式。 您沒有顯示時間戳如何轉換為日期,但我猜您正在使用內置解析器,例如:

var d = new Date(current_time);

但是,由於不支持格式的解析取決於實現,因此某些瀏覽器將返回無效日期。

此外,PHP 代碼為服務器生成一個“本地”日期,大概它設置為 UTC。 瀏覽器確實解析格式為 YYYY-MM-DD HH:mm:ss 的日期,它幾乎肯定是瀏覽器主機系統的本地時間,因此如果兩個系統具有不同的時間,它將代表與初始時間戳不同的時刻設置。

OP 沒有說明$user_last_activity是什么格式。 大概是另一個時間戳,因此解析時會遇到相同的問題。

對上述問題進行排序后,您只需將一個日期與另一個日期相減即可獲得兩個日期之間的毫秒差異,請參閱JavaScript 中的日期差異 然后可以將時差轉換為天、小時、分鍾等。

我已經通過改變邏輯解決了它。 我只是將 strtotime() 用於 php 頁面中的 $user_last_activity 和 $current_time ,從中我調用 JavaScript chatbox() 函數並在那里找到差異,然后傳遞函數中的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM