簡體   English   中英

javascript moment.js計算兩個日期之間的百分比

[英]javascript moment.js calculate percentage between two dates

我正在使用插件Moment.js,我有html

<div class="record-time pull-right" data-date="2013-09-22 20:16:39"
         data-completion-date="2019-08-07 00:00:00">

</div>

並且我想計算從data-date attr到data-completion-date attr所經過的時間百分比,並且這些日期在firefox中不起作用,或者,但是在chrome中很好。

我可以使用以下時間從約會中抽出時間:

      moment(new Date(record_time.attr('data-date'))).fromNow()

但它再次只適用於chrome,我在這里缺少什么? 日期是從mysql數據庫datetime字段中提取的。

我在Firefox中獲得'NaN'即ie

回答:

 var record_time = $(this).find('.record-time');
 var creation_date = $(this).find('.record-time').data('date');
 var completion_date = $(this).find('.record-time').data('completion-date');

 // get percentage completed (now - startDate) / (endDate - startDate)
 now = moment();
 startDate = moment(creation_date);
 endDate = moment(completion_date);
 var percentage_complete = (now - startDate) / (endDate - startDate) * 100;
 var percentage_rounded = (Math.round(percentage_complete * 100) / 100); 
 // percentage rounded to 2 decimal points

 // set the progress bar percentages
 var record_progress = $(this).find('.bar');
 record_progress.css('width', percentage_rounded+'%');
 record_progress.html(percentage_rounded+'% - Completed');

適用於最新版本的Chrome,Firefox和IE

根據文檔 ,moment.js可以解析日期字符串的格式。

嘗試解析這樣的日期:

moment(record_time.data('date'));

查看Date.parse規范,預期的日期字符串格式為RFC2822或ISO 8601.您的日期字符串既不是這些。

Date.parse("2013-09-22 20:16:39") -> NaN in FireFox
Date.parse("2013-09-22T19:16:39Z") -> 1379877399000 in FireFox

暫無
暫無

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

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