プロが教える店舗&オフィスのセキュリティ対策術

html javascript
リンク先アドレスの中に当日日付を取得したい。


こんにちは。
javascriptに関しては超初心者です…

現在
<a href=”http://〜/schedule/index?&bdate=2017-01-12〜>
<font 〜>★</font></a>

★をクリックしたら
システムのスケジュール画面に飛んで
当日から一週間表示される仕組みなんですが、
一週間表示は大元がそうなっているようなので、
当日の日付が表示されるように埋め込めばうまくいくかと思ってますが、
当日を自動的に取得する方法が分からず、
毎朝手動で日付を変えている状態です。

他の投稿のベストアンサーを参考に
以下のようにしましたがうまくいきません。

<DOCTYPE HTML PUBLIC〜>
<meta http〜>



<script type=text/javascript>
<!--
today=new Date();
year=' ' +today.getFullYear();
month=' ' +today.getMonth()+1);
if(month < 10){ month = '0' +month; }
day =' '+today.getDate();
if(day < 10) { day = '0' +day; }
-->
document.write('<a href=”http://〜/schedule/index?&bdate='year+month+day'〜>')
<font 〜>★</font></a>
</script>

どうかご指摘いただけたら嬉しいです。
宜しくお願いします。

A 回答 (2件)

ちゃんとやるなら、以下のような形が望ましいです



<script>
document.addEventListener('DOMContentLoaded', function(){
function replaceTodayURL(anchor) {
var url = anchor.href;
var re = /@today-yyyy-mm-dd@/;
if (!re.test(url)) return;
var p = function(n,v){return (new Array(n+1).join('0')+v).substr(-n)};
var t = new Date();
var s = p(4, t.getFullYear()) + '-' + p(2, t.getMonth()+1) + '-' + p(2, t.getDate());
anchor.href = url.replace(re, s);
}
var a = document.querySelectorAll('a[href]');
for (var i = 0; i < a.length; i++) replaceTodayURL(a[i]);
}, false);
</script>

<a href="/schedule/index?bdate=@today-yyyy-mm-dd@">★</a>
    • good
    • 1
この回答へのお礼

ありがとうございます!動作しました!

お礼日時:2017/01/12 19:51

こんにちは



最終的にはリンク要素のURLを正しく設定できれば良いのだと想像しますが、パラメータの正しい書式が不明なのでその部分に関しては回答ができませんね。

でも、その前に、ご提示のスクリプトのままではエラーのために動作していないものと推測します。
>1 today=new Date();
>2 year=' ' +today.getFullYear();
>3 month=' ' +today.getMonth()+1);
>4 if(month < 10){ month = '0' +month; }
>5 day =' '+today.getDate();
>6 if(day < 10) { day = '0' +day; }

3行目の閉じ括弧に対応する括弧がないので、エラーになります。
4、6行目の中括弧が半角英数の括弧ではないので、構文エラーになります。

上記を修正すれば、多分、とりあえずは動くと思いますが、月、日が1桁の際のゼロパディング処理を行う前に、スペースを連結してしまっているので、例えば5月の場合を例にすると「□ 5」→「0□5」となるような処理になっています。(←□は半角スペースを表しています。)
それなので、想像するところ、考えていらっしゃる処理とは異なっているのではないでしょうか?
(通常であれば「5」→「05」などとしますので)

結果的にパラメータも間違ったものになってしまっているのではないかと想像します。
    • good
    • 0

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