Nó không xuất hiện là một trong các định dạng được hỗ trợ: http://momentjs.com/docs/#/durations/
Có không có bất kỳ sự thiếu hụt của Repos github mà giải quyết nó với regex (như bạn đã thấy, dựa vào các liên kết mà bạn cung cấp). Điều này giải quyết nó mà không cần sử dụng Date. Thậm chí có cần chút thời gian không?
var regex = /P((([0-9]*\.?[0-9]*)Y)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)W)?(([0-9]*\.?[0-9]*)D)?)?(T(([0-9]*\.?[0-9]*)H)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)S)?)?/
minutesFromIsoDuration = function(duration) {
var matches = duration.match(regex);
return parseFloat(matches[14]) || 0;
}
Nếu bạn kiểm tra nó:
minutesFromIsoDuration ("PT120S");
phútFromIsoDuration ("PT5M");
Nếu bạn muốn thời gian hợp lý trong vài phút, bạn có thể nhận được ngay với:
return moment.duration({
years: parseFloat(matches[3]),
months: parseFloat(matches[5]),
weeks: parseFloat(matches[7]),
days: parseFloat(matches[9]),
hours: parseFloat(matches[12]),
minutes: parseFloat(matches[14]),
seconds: parseFloat(matches[16])
});
Tiếp theo
result.as("minutes");
Nguồn
2015-01-09 00:32:50
Bạn đã kiểm tra tài liệu của họ chưa? Tôi không thấy phân tích cú pháp thời gian ISO8601 ở đó http://momentjs.com/docs/#/parsing/ – Xotic750