type9さんの回答で提示されたURLのソースを参考にして作ってみました。
<script language="JavaScript"><!--</p> <p>var now = new Date();</p> <p>var tYear = now.getFullYear();</p> <p>var tMonth = now.getMonth() + 2;</p> <p>if (tMonth >= 13){</p> <p> tYear += 1;</p> <p> tMonth -= 12;</p> <p>}</p> <p>var wDate = new Date(tYear + "/" + tMonth + "/1");</p> <p>var countdown = Math.ceil( ( wDate.getTime() - now.getTime()- 1000 * 60 * 60 * 24 ) / (1000*60*60*24) );</p> <p>document.write('月末まであと、', countdown ,'日!');</p> <p>// --></script>
あ、もしかして、半角で書くと おかしくなるかもしれないので 全角にしました。半角にしてください。
<script language=”JavaScript”><!--
var now = new Date();
var tYear = now.getFullYear();
var tMonth = now.getMonth() + 2;
if (tMonth >= 13){
tYear += 1;
tMonth -= 12;
}
var wDate = new Date(tYear + ”/” + tMonth + ”/1”);
var countdown = Math.ceil( ( wDate.getTime() - now.getTime()- 1000 * 60 * 60 * 24 ) / (1000*60*60*24) );
document.write(’月末まであと、’, countdown ,’日!’);
// --></script>
こちらでいかがでしょうか?
<html>
<body>
<script Language="JavaScript">
<!--
// 指定日までの残り日数を返す関数
function xDay(y,m,d) {
var today = new Date();
var xday = new Date(y,m-1,d);
var dayMS = 24*60*60*1000;
var n = Math.floor((xday.getTime()-today.getTime())/dayMS)+1;
return n;
}
// 月末まで何日あるか
function Nokori() {
// 当月末日を取得
var dt;
dt = new Date();
dt.setMonth(dt.getMonth() + 1);
dt.setDate(0); // 0指定でsetDateすると前月末日がとれる
// 年月日に分解
var y = dt.getFullYear();
var m = dt.getMonth() + 1;
var d = dt.getDate();
// 表示
document.write ("月末までの残りは、"+xDay(y,m,d)+"日です。");
}
Nokori();
// -->
</script>
</body>
<html>
■参考
このようなスクリプトでいけると思います。
<script language="javascript"></p> <p>var today = new Date("1 Dec,1999");</p> <p>var next1st = new Date(today);</p> <p>next1st.setDate(1);</p> <p>next1st.setMonth((today.getMonth()+1)%12);</p> <p>if(next1st.getMonth() == 0){next1st.setFullYear(today.getFullYear()+1)};</p> <p>var change = (next1st.getTime()-today.getTime())/(1000*60*60*24);</p> <p>document.write(change,"day(s).");</p> <p></script>
これは、翌月1日までの差を取っているので、
例えば8月31日なら1日という答えが返されます。
<script type="text/javascript"></p> <p><!--</p> <p>function getRemainsOfCurrentMonth(){</p> <p>var lastdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];</p> <p>var date = new Date();</p> <p>var current = date.getDate();</p> <p>return ( lastdays[date.getMonth()] - current );</p> <p>}</p> <p>document.write( getRemainsOfCurrentMonth() )</p> <p>--></p> <p></script>
それでは全然ダメなんです。今月の月末だけではなく、新しい月になっても、常に当月の月末までの日数を示すようにしたいのです。