質問: gettitle[0].innerHTML;//課題のタイトル取得 var getdate=document.getElementsByClassName("small-detail-info");//期限設定のクラス取得 var object=getdate[3].outerHTML;//提出期限設定のクラス取得 //開始日と終了日がそれぞれ二桁の時間だと仮定しそれぞれの文字列を取得する //object1の中身の例:2018/10/05 13:00 //object2の中身の例:2018/10/10 23:30 var object1=object.substr(399,16);//開始日 var object2=object.substr(488,16);//終了日 var date_start=object1.indexOf('<');//(この文字(<)がなければ―1が返ってくる) var date_end=object2.indexOf(''); var date_end2=object2.indexOf('<'); var deadline=object.indexOf('style="display: block;"');//提出期限がすぎている場合はこの文字列がある。 var task=object.indexOf('data-end="null"');//レポートタスク以外の場合期限設定がnullになっている var getdate_end; var flag=0; ki var getsubject=document.getElementsByClassName("course-name-text-header-mvc");//教科タイトル設定クラスの取得 var subject=getsubject[1].innerHTML;//教科タイトルの取得 var getdescription=document.getElementsByClassName("description-text");//説明設定クラスの取得 var description=getdescription[0].innerHTML //課題説明の取得” この続きからif文など追加していきたいと思っています。
回答: こんにちは。 質問への追記・修正の依頼のほうで、関数`remainingDaysUntil(dateStr)` の実装例をご希望されている旨、ご返答いただきましたので、以下にて回答します。 ひとつ提案ですが、日時の比較や差の算出をするとき、標準のDateではなく、Moment.js が便利です。これを使うと、`remainingDaysUntil(dateStr)` は以下のように数値計算を自分で書くことなく、実現できます。 ``` // dateStr: YYYY-MM-DD形式の文字列 function remainingDaysUntil(dateStr) { return moment(dateStr).diff(moment(), 'days', true); } ``` 上記の `remainingDaysUntil()` は、引数として、`"2019-01-01"` のような文字列を受け取り、現在日時から、その指定日付までにあと何日あるかを算出して、小数含めた数値で返します。 以下は、上記の `remainingDaysUntil(dateStr)`を使ったサンプルです。丸ごとコピペして、何らかのHTMLファイルに保存してブラウザで表示してみてください。日付を選ぶ `` で、明日の日付を選ぶと、あと1日を切っている旨のメッセージが表示されます。 ``` Q155914 現在日時から まで、 あと?日 (※1日を切っています。) ``` 上記と同じものを、以下にも上げておきました。 * **動作確認用サンプル:** moment を使ってみようとした際に、ご自身でいろいろ試行錯誤されることとは思いますが、使い方で分からない箇所があれば、またご質問頂ければと思います。 基礎的な使い方の記事としては、以下および以下の参考URLに挙がっている投稿やページからざっと読んでいくと、よいかもしれません。 * 日時計算に便利なMoment.jsを使ってみる - 参考URL (yasumodevさん@Qiita) 以上参考になれば幸いです。