2017-12-07 4 views
1

私の顧客は毎週のスケジュール(月曜日は午後2時、金曜日は午後3時、金曜日は午後4時など)を作成します。この時私の関数foo()を呼び出す必要があります。彼らは「foo()をこのスケジュールで呼び出す」と言うでしょうが、指定した月数はです。です。お客様の週別スケジュールに基づいて時間ジョブの配列を作成します

は、だから私は、自分が選んだスケジュール(日は月・日のために1-7である)持っている:私は私は形式で本当日の配列に変換する必要があり

const scheduleArray = [{day: '1', hour: '11', minute: '34'},{...}] 

思考:

const scheduleArrayForFooFunction = [{ 
    month: '3', 
    date: '16', 
    hour: '11', 
    minute: '34'},{...}] 

これを変換する方法についての推奨事項はありますか?私は困難があります。または、私のためにそれを行うjavascriptライブラリがありますか?

答えて

1

momentjs.comが必要です。その後、インスタンス

moment().startOf('month').add(1, 'week').add(-1, 'day').day('1') 

のために現在の月の最初の月曜日を取得するために

(月曜日チェーンday('1')の最後の呼び出しは、私が原因あなたの形式の文字列を使用しますが、それだけで数可能)

add(1, 'week')を使用して他の月曜日を取得することができます。必要に応じて月の範囲を確認してください。簡単な方法があるかどう

UPDATE

RobGは尋ねました。明らかに簡略化することができます

moment().startOf('month').add(6, 'day').day('1') 

しかし私は6日追加する理由はそれほど明確ではないと思います。

+0

これは、月の最初の月曜日(5回の関数呼び出し)を取得するための複雑な方法のようです。確かに簡単な方法がありますか? – RobG

+0

@RobGアップデートを提供しました。見てみましょう。あなたがより良い方法を知っているなら、私たちに知らせてください。 –

関連する問題