Date型で取ってきているはずなのに……。

ある動作のイベントにおいて、日付フィールドから値を取得し、変数に格納した場合、最初のif文ではfromDate.format(“DD”)の値が格納されているのに対し、次のif文ではfromDateに値が入っているのが確認できたものの、fromDate.format(“DD”)に値を確認することは出来なかったです。

 

最初のif文でfromDateに代入した際に(①のところ)、Date型からString型になってしまったのではないかと考えています

どういうことなのかどなたかご教授願いたいです。

//日付フィールドから値を持ってくる
var fromDate = moment(recordInf.Table_0.value[j].value.日付_1.value);
var toDate = moment(recordInf.Table_0.value[j].value.日付_2.value);

//最初のif文では値の確認が出来ました
if(parseInt(fromDate.format("DD"))<1 && 10<parseInt(toDate.format("DD"))
|| parseInt(fromDate.format("DD"))<10 || 1<parseInt(toDate.format("DD"))){
days.push(fromDate.format("YYYY-MM-01"));
fromDate=fromDate.format("YYYY-MM-11");←①
}

//次のif文では値の確認が出来ませんでした
if(parseInt(fromDate.format("DD"))<11 && 20<parseInt(toDate.format("DD"))
|| parseInt(fromDate.format("DD"))<20 || 11<parseInt(toDate.format("DD"))){
days.push(fromDate.format("YYYY-MM-11"));
fromDate=fromDate.format("YYYY-MM-21");
}

2個目のfromDateには値が入っていることが確認できました。

しかし、fromDate.format(“DD”)を調べたところ、値が確認できませんでした。

 

 

たいさん

>fromDate=fromDate.format(“YYYY-MM-11”);←①

format(“YYYY-MM-11”) で指定された、文字列を設定しています。
未検証ですが、こんな感じだと思います。

fromDate = moment(fromDate.format(“YYYY-MM-11”));