簡體   English   中英

JavaScript中不同時區的timeago時間

[英]timeago time in different timezones in javascript

我正在使用timeago javascript插件來計算從用戶創建帖子開始經過的時間。 問題在於,當用戶創建新帖子時,timeago函數正在啟動,顯示的時間從“ 10小時”而不是“現在”開始。 我認為這是因為數據庫中的時間與用戶所在的時區存儲在不同的時區中。

任何想法如何解決這個問題?

經過一番研究,我發現時間戳的格式必須為ISO 8601,但經過測試后無法正常工作!

下面是顯示時間的代碼。

<?php
foreach ($postsArray  as $v1) 
                            {
                            ?>      
                            <article>                       
                            <header><h3><?php echo $v1->TITLE; ?></h3>            </header>
                            <p><?php echo $v1->CONTENT; ?></p>
                            <?php
                            $timestamp = $v1->TIME;
                            $formatedDate = date("c",strtotime($timestamp));
                            ?>
                            <footer><b>Author:</b> <?php echo $v1->USERNAME; ?> <b>Published:</b> <time class="timeago" datetime="<? echo $formatedDate; ?>"></time></footer>
                            </article>
                            <?php
                            }
                            ?>    

以下是javascript函數:

<script type="text/javascript">
  $(document).ready(function(){
  $('time.timeago').timeago();
    });
</script>

這里是jquery-timeago的作者。

作為文檔參考 ,要求ISO 8601時間戳才能使所有內容在timeago中按預期工作(自動處理時區):

<time class="timeago" datetime="2008-07-17T09:24:17Z">July 17, 2008</time>

在PHP中,要獲取ISO 8601時間戳,下面是一個示例片段:

$time->format(DateTime::ISO8601);

我更喜歡js時刻:) http://momentjs.com/timezone/

您可以檢查數據庫時間戳和可以在客戶端的服務器上獲取的數據數據。 比較一下,您會發現錯誤的時區在哪里。

暫無
暫無

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

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