• ベストアンサー

getYear(),gerMonth()についての質問(初心者)

今日の日付を表示するのに,年,月,日全て2桁表示したい場合はどうすれば, いいでしょうか?(たとえば,今日だと,「020115」となります。)

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.5

> 欲しい数字が,[+sj(new Date())の部分] > 0020020010016となってしまいます。 あれっ?だめですか? 私もxruzさんのスクリプトで試してみましたがうまくいきましたよ。 function n99(n) {... の行を写し間違えていないかもう一度確認してみてください。 ところで、No.3の補足のやつが動かなかったのは、最後の行が間違っていたからでしょう。 誤).../zzz/234567+"year+month+day".gif'>"); 正).../zzz/234567"+year+month+day+".gif'>");

syakure
質問者

お礼

色々頑張った結果,以下のプログラムに落ち着きました。 何で,xruzさんのでは,うまくいかないのか,解決してませんが・・・ IEのバージョンが,5.0と言うのが関係あるでしょうか? 色々と本当に,ありがとうございました。 これから,もっと精進します。:P <HTML><HEAD><TITLE></TITLE></HEAD> <BODY> <SCRIPT Language="JavaScript"> <!-- var date = new Date(); var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear() % 100; day = ((day < 10) ? "0" : "") + day; month = ((month < 10) ? "0" : "") + month; year = ((year < 10) ? "0" : "") + year; document.write("<IMG SRC='http://www.xxx.com/yyy/23456"+year+month+day+".gif'>"); //--> </SCRIPT></BODY></HTML>

その他の回答 (4)

  • xruz
  • ベストアンサー率50% (72/143)
回答No.4

No2のxruzです。こんな感じかな? <html> <head> <title></title> </head> <script language="JavaScript"> <!-- function n99(n) { return ("00"+n.toString()).slice(-2); } function sj(d) { return n99(d.getFullYear())+n99((d.getMonth()+1))+n99(d.getDate()); } //--> </script> <body> <script language="JavaScript"> <!-- document.write("<IMG SRC='http://www.xxx.com/yyy/zzz/234567"+sj(new Date())+".gif'>"); //--> </script> </body> </html> がんばってね(~:~i

syakure
質問者

補足

お返事ありがとうございます。 上記のプログラムに,より,エラーはなくなったのですが, 欲しい数字が,[+sj(new Date())の部分] 0020020010016となってしまいます。本当は,020116(2002年1月16日)が,欲しいです。 どこを修正すればいいでしょうか? 度々の質問すいません。

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

No.1のUKYです。すこし補足いたします。 getYear()は、1900年を基準にして値を返します。 例) 1996→96  2002→102 これだとちょっと使いづらいので、年号を数字をそのまま返す getFullYear()を使ったほうが便利です。 例) 1996→1996  2002→2002 あと、getMonth()は実際の数字より値が1つ小さくなっているので、 注意が必要。 例) 1月→0   5月→4 分からなければさらに補足します。 (あなたがどの程度の初心者なのかわからないので…)

syakure
質問者

補足

解説ありがとうございます。 補足させていただきます。 今,自分がやりたいことは毎日更新されるページをデスクトップに表示させようとしてます(アクティブデスクトップの設定で)。そこで,現在作成中のソースを下に示します。どこが悪いのか,今ひとつ分かりません。もしよろしかったら教えてください。 ちなみに,document.write,,,,,,の行はどこからかもってきたものなので,理解はしてません。 あと,URLのところの,234567と言う数字は毎日の変更はありません。 下6桁が毎日変更され,それが日付と対応してるのです。 では,よろしくお願いします。 <html> <head> <title></title> </head> <script language="JavaScript"> <!-- var date = new Date(); var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear() % 100; day = ((day < 10) ? "0" : "") + day; month = ((month < 10) ? "0" : "") + month; year = ((year < 10) ? "0" : "") + year; document.write("<IMG SRC='http://www.xxx.com/yyy/zzz/234567+"year+month+day".gif'>"); //--> </script> </html>

  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

こんにちはsyakureさん、xruzです。 こんなんでもいいですよ。 <html> <head> <title></title> </head> <script language="JavaScript"> <!-- function n99(n) { return ("00"+n.toString()).slice(-2); } function sj(d) { document.f.t.value=n99(d.getFullYear())+n99((d.getMonth()+1))+n99(d.getDate()); } //--> </script> <body onLoad="sj(new Date())"> <form name="f"> <input type="text" name="t"> </form> </body> </html> がんばってくださいね(~:~i

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

こんな感じでどうでしょう? var date = new Date(); var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear() % 100; day = ((day < 10) ? "0" : "") + day; month = ((month < 10) ? "0" : "") + month; year = ((year < 10) ? "0" : "") + year; document.write(year + month + day);

関連するQ&A

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

  • access2003のクエリの条件指定について質問です

    コード(7桁)、単価、数量、金額、日付(年月日6桁表示)のテーブルと コード、部門コード(コードの上3桁)の選択クエリと 部門コード、部門名称のテーブルを結合して コード_部門(コードの上3桁)、コード_追番(コードの下4桁)、部門名称、単価、数量、金額、日付_年(日付の分割・2桁)、日付_月(日付の分割・2桁)、日付_日(日付の分割・2桁)、を他のテーブルに抽出する追加クエリを作成し、条件として部門コードに対応する部門名称が無い場合そのフィールドは空白でレコード自体は表示するようにしたいのですが、どうすれば良いのでしょうか? いくらやっても対応する部門名称が無い場合、抽出されずにレコード自体が表示されなくなってしまいます。 拙い文章で上手く内容が伝わらないかもしれませんが、どなたかご教授下さい。

  • 日付表示について

    日付表示について教えてください。例えば西暦で入力した場合 平成17年01月01日 平成17年10月10日 のように桁を揃えたいのですが、平成17年 1月 1日のように01月01日の"0"を表示しない方法をよろしくお願いします。

  • エクセルで分割された日付の表示方法

    セルA1に年が2011 セルB1に月 5 セルC1に日 15 と別々に入力されている日付を一つのセルに8桁で 20110515 と表示する方法を教えて下さい。 文字列の結合だと月と日が1桁の場合だと6桁になってしまいます。 どうすればいいのでしょうか。

  • excelの日付の処理について教えてください。(初心者です)

    文字列で定義された日付(*)を’2001/8/1’(シリアル値?)と表示させるには どういう関数でどういう計算をしたら効率よく変換できるでしょうか? *: 文字列で’H130801’ 1桁目(平成=H,昭和=S)+年+月+日

  • 日付の表示形式【Excel】

    日付の表示形式について質問です。 『平成18年07月28日』のように月や日が1桁のときも前にゼロを付けて2桁表示にしたいのですが、そのような設定はできるのでしょうか?

  • Excelで日付の表示

    日付を 平成17年 1月 2日 平成17年11月20日 平成17年 4月13日 こんな感じに日付の表示にするにはどうしたらいいのでしょうか?(画面では少しずれているかもしれませんが) 一ケタの月や日にちの時は、前にスペースを入れて、二桁の月や日にちの時と幅を合わせたいんです。 宜しくお願いいたします。

  • エクセルの日付で西暦の書式について・・・

    分かる方がいたら教えて下さい! エクセルの表で「1977/2/3」と表示させている日付があるとします。 これを「19770203」というように「/」をとり、月&日が2桁ない場合は頭に「0」を足してトータルで8桁表示させたい場合はどのようにすれば良いのでしょうか・・・。 合計1000件分データがあり、一括して変換させたい(月&日が2桁ある場合も含む)のですが良い方法はあるでしょうか?

  • 二つのセルの文字列を結合する

    日付表示の入ったセルと二桁の数字の入ったセルを結合して8桁の識別数字を作成しようと考えています。 日付は2011年1月22日→110122とユーザー定義でできたのですが、&により結合しますと 日付のところがシリアル値がかえってしまいます。 西暦日付が表示された結合方法を教えて下さい。よろしくお願いします。

  • Excel VBA で日付を4ケタの数値に変換させるには?

    ある日付データを 『月』と『日付』のみの4ケタの"文字列"にさせて表示処理させたいのですが、困っております。 現在、VBAを使用しないで処理させると…こんな感じで困っています。 1.日付を yyyy/mm/dd 表示 2.編集~ 『/』のみを全て『0』に変換 3.RIGHT関数で4ケタ(または5ケタ)抜き取る *データ* 日付    yyyy/mm/dd  変換      RIGHT(4ケタ) 1月5日  2005/1/5     20050105   0105 1月10日  2005/1/10    200501010   0110  ・    ・  ・    ・ ▲不具合状況 1."1月10日" のように日付が2ケタになる日は "1010" のように表示がずれる。RIGHT(○,5) で対処する方法もあるが…効率があまり良くない。 2."yyyy/mm/dd" のデータを直で "RIGHT( )" で処理させると思ったとおりの値が戻ってこない。 yyyy/mm/dd      RIGHT() 2005/1/5    →   8537 …変な値が戻ってくる? VBAで一気にやる方法ありますでしょうか? お知恵を拝借ください!