私はmoment.jsを取得して、特定の日付までの時間を表示しようとしています。私はこれをやったことがあります:MomentJsは2つの変数を使って "time until"を取得します
let date = 2017-03-27T12:00:00;
moment().to(date);
これは "in 10 days
"を示しています。
「in 10 days and 2 hours
」または2つの最も高い値を表示することが本当に好きです。たとえば、1 year and 5 months
,4 minutes and 30 seconds
となります。
これを行う簡単な方法はありますか?私は現在、これを処理する複雑な方法に取り組んでいます...
let years = moment(date).local().diff(moment(), 'years');
let months = (moment(date).local().diff(moment(), 'months'));
let days = (moment(date).local().diff(moment(), 'days'));
let hours = (moment(date).local().diff(moment(), 'hours'));
let minutes = (moment(date).local().diff(moment(), 'minutes'));
let seconds = (moment(date).local().diff(moment(), 'seconds'));
//The above values return total number each,
//For example, this could show 1 year, 14 months, 435 days, etc.
//The math below is supposed to make this say
//1 year, 2 months, 14 days, etc.
let yearsRemain = years;
let monthsRemain = months - (years *12);
let daysRemain = days - (Math.floor(months * 30));
let hoursRemain = hours - (days * 24);
let minutesRemain = minutes - (hours * 60);
let secondsRemain = seconds - (minutes * 60);
var dateArray = [
yearsRemain,
monthsRemain,
daysRemain,
hoursRemain,
minutesRemain,
secondsRemain
]
console.log(dateArray);
/*
returns [1, 1, 3, 23, 16, 46] for example
*/
この問題は日にちになります。 1年と1月の日数が異なるので、私はmoment.jsが私を助けてくれることを望んでいました。これを行うより良い方法はありますか?
最終的に、私は配列を繰り返して、私がどのようにしたいかを表示するための2つの最大値を見つけることができます。
ありがとうございます、私は技術的には、2つのtypecriptでイオン2で働いています。モーメント・デュレーション・フォーマットを自分のプロジェクトにインポートする方法を見つけたら、これを試してみましょう。ありがとうございました! – ntgCleaner
あなたの最初のコードブロックは、魅力のように機能します。あなたは、私が、いくつかではなく、1つの持続時間で作業しなければならないことを実感しました。ありがとうございました! – ntgCleaner