プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
JavaScript、年を取得するときは「getYear()」ではなく「getFullYear()」を使いましょう
書きたいことは全部タイトルに書いてしまったのですけどね。
JavaScriptで年を取得するときは「getYear()」ではなく「getFullYear()」を使いましょうというお話です。

例えば、現在日時を取得するサンプルを見ると、
こんな感じのコードが書いてある場合がありますφ(--)

function getNow(){
    var dt = new Date();
    var y = dt.getYear();
    var m = dt.getMonth() + 1;
    var d = dt.getDate();
    var NowWeek = dt.getDay();
    var h = dt.getHours();
    var mi = dt.getMinutes();
    var s = dt.getSeconds();

    if (m < 10) {
        m = '0' + m;
    }
    if (d < 10) {
        d = '0' + d;
    }
    if (h < 10) {
        h = '0' + h;
    }
    if (mi < 10) {
        mi = '0' + mi;
    }
    if (s < 10) {
        s = '0' + s;
    }

    $("#hoge").val(y + "/" + m + "/" + d + " " + h + ":" + mi + ":" + s);
}

これはうっかりミスで、本当はこう書くのが正解ですφ(--)

function getNow(){
    var dt = new Date();
    var y = dt.getFullYear();
    var m = dt.getMonth() + 1;
    var d = dt.getDate();
    var NowWeek = dt.getDay();
    var h = dt.getHours();
    var mi = dt.getMinutes();
    var s = dt.getSeconds();

    if (m < 10) {
        m = '0' + m;
    }
    if (d < 10) {
        d = '0' + d;
    }
    if (h < 10) {
        h = '0' + h;
    }
    if (mi < 10) {
        mi = '0' + mi;
    }
    if (s < 10) {
        s = '0' + s;
    }

    $("#hoge").val(y + "/" + m + "/" + d + " " + h + ":" + mi + ":" + s);
}

年を取得するときは「getYear()」ではなく「getFullYear()」を使ってください。
「getYear()」は2桁の年を取得する関数で「getFullYear()」が4桁の年を取得する関数です。

なんでわざわざこんなことを書くかというとですね。
「getYear()」はブラウザによって挙動が異なるのです。

例えば、こんなサンプルコードを実行すると分かりますφ(--)

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
    <!--
    function getY(){
        var dt = new Date();
        var y = dt.getYear();
        var y2 = dt.getFullYear();


        alert(y + ":" + y2);
    }
    // -->
    </SCRIPT>
</head>
<body>
    <input type="button" value="ぽちっ" onclick="getY();"><br>
</body>
</html>

主要ブラウザの実行結果は、各々こんな感じになりますφ(--)

Google Chrome → 115:2015
IE8 → 2015:2015
Firefox → 115:2015
Safari → 115:2015
Opera → 115:2015

うん、相変わらずIEだけ独自路線を突っ走ってるっぽいですね(^^;

というわけで、JavaScriptで年を取得したいときは「getFullYear()」を使いましょう。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● JavaScript  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事