- PR -

JavaScriptで日付計算の方法

1
投稿者投稿内容
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-07-30 10:51
Javascriptについてご質問させて下さい。

画面のtextにjavascriptで今日から10日前の
日付を表示させたいのですが、今日が一桁の日にちですと、
getMonth()-10した場合、日付を無視して純粋にその日付の数字から
マイナスをした結果となってしまいます。
これを回避するにはどうしたら良いのでしょうか?

例)
(×)2007年7月8日→2007年7月-2日
(○)2007年7月8日→2007年6月29日

--------------------------------------
myD = new Date();
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myDate = myD.getDate();

myMess1 = myYear4 + "年" + myMonth + "月" + (myDate-10) + "日";

form.date1.value = myMess1;
--------------------------------------

JavaScript例文辞典さんなど、JavaScriptの日付計算について、
調べてみたのですが、はっきりとしたものがありませんでしたので、
ご質問させて頂きました。

宜しくお願い致します。
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2007-07-30 11:20
10日前は10*24*60*60*1000ミリ秒前です。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-07-30 11:32
日にちを求めて、その求めたものに -10 したら -2 日になってしまうのは
当然というか、日にち(ただの数値変数)がマイナスになったからと言って
ほかの変数に影響を与えたりはしませんよね。

手っ取り早くやるには -10日にした日付で Date オブジェクトを作り直せ
ば正しい日付に補正してくれると思います。

コード:

myD = new Date();
myD = new Date(myD.getYear(), myD.getMonth(), myD.getDate() - 10);

myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myDate = myD.getDate();

myMess1 = myYear4 + "年" + myMonth + "月" + myDate + "日";

form.date1.value = myMess1;


同様な方法で new Date(2007, 7, -1) などとすると 7 月の末日が求
められたりします。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
グレハン
常連さん
会議室デビュー日: 2006/02/23
投稿数: 25
投稿日時: 2007-07-30 11:33
JavaScript は リッチクライアントスレなのかな?と思いつつ、

myD.setTime(myD.getTime() - ○○○);

○○○の部分に、10日前のミリ秒って感じでどうでしょうか?
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-07-30 12:17
sawat様
ぽぴ王子様
グレハン様

ありがとうございます。
解決することができました。

すごく感謝しております。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-07-30 13:56
解決したようでよかったです。

ただ、解決したのであれば「どのようにして解決したのか」を書いておくとい
いと思います。
スレッドを立ち上げた(質問した)のはjava初心者★さんですが、後から見
た人がこのスレッドを参考にするかもしれません。

それとは別に、純粋に技術的興味として私も気になります>解決方法
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-08-01 09:46
そうですね^^;

>解決したのであれば「どのようにして解決したのか」を書いておくとい
>いと思います。

自分は「ぽぴ王子様」のソースをマルマル使わせて
頂きました。

ホント、勉強になります。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)