プロが教えるわが家の防犯対策術!

いつもお世話になっております。
JsでDateオブジェクトの年月日の比較がしたいのですがどうすれば良いでしょうか、、

以下を参考に
http://qiita.com/labocho/items/5fbaa0491b6722141 …

Tue Jun 06 00:00:00 GMT+09:00 2017
.getTime()で比較すると
都合が悪く、年月日で比較したいのですが、どうすれば良いでしょうか、、、

お教え頂けると幸いです

A 回答 (3件)

yyyymmdd形式の文字列を返すならこんな感じでしょうか?



<script>
var str1="Thu, 16 Sep 2012 00:00:00 +0900";
var str2="Thu, 17 Sep 2012 00:00:00 +0900";

console.log(timestr2ymd(str1));
console.log(timestr2ymd(str2));

function timestr2ymd(str){
var d=new Date(str);
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
var ret="";
ret+=d.getFullYear().toString();
ret+=("0"+(d.getMonth()+1).toString()).substr(-2);
ret+=("0"+d.getDate().toString()).substr(-2);
return ret;
};

</script>
    • good
    • 0
この回答へのお礼

完璧です!!
functionで分けて頂きソースも見通し良いです。
首の皮一枚つながりました!

お礼日時:2017/07/20 23:54

9/6、9/7の曜日が同じでいいんですか?


一応変換すれば曜日は無視されるみたいですけど

<script>
var str1="Thu, 06 Sep 2012 00:00:00 +0900";
var d1=new Date(str1);
console.log(d1.getFullYear()+"-"+(d1.getMonth()+1)+"-"+d1.getDate()+" "+d1.getHours()+":"+d1.getMinutes()+":"+d1.getSeconds());

var str2="Thu, 07 Sep 2012 00:00:00 +0900";
var d2=new Date(str2);
console.log(d2.getFullYear()+"-"+(d2.getMonth()+1)+"-"+d2.getDate()+" "+d2.getHours()+":"+d2.getMinutes()+":"+d2.getSeconds());
</script>
    • good
    • 0
この回答へのお礼

曜日は気にしなくて良いです。
yyyymmddでの比較ができれば良いです。

お礼日時:2017/07/20 20:42

まじめにやる場合


function F(d){return d.getFullYear() * 10000 + d.getMonth() * 100 + d.getDate()}
if (F(new Date('2017-07-20')) < F(new Date('2017-07-21'))) alert("OK");

最近ならこれでも大丈夫
function F(d){return d.toJSON().replace(/T.+/,'')}
if (F(new Date('2017-07-20')) < F(new Date('2017-07-21'))) alert("OK");
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
以下のようにしてみたのですが、エラーとなってしまいます。
Dateに入れる日付けはThu, 06 Sep 2012 00:00:00 +0900みたいな形式なのですが、どうすれば良いでしょうか、、、

function F(d){return d.toJSON().replace(/T.+/,'')}
if (F(new Date("Thu, 06 Sep 2012 00:00:00 +0900")) > F("Thu, 07 Sep 2012 00:00:00 +0900")) Logger.log("OK");
exit();

お礼日時:2017/07/20 19:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!