我正在使用插件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数据库日期时间字段中提取的。
我在Firefox中获得了'NaN',即
解答:
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
答案 0 :(得分:2)
答案 1 :(得分:0)
查看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