15

私は小さな問題を抱えています。助けていただければ幸いです。'dd/mm/yyyy'現在の日付を書式設定し、ドロップダウン ボックスから年変数を追加して最終的な有効期限を作成する小さなフォームを作成しています。唯一の問題は、計算を完了するために開始日を日付変数として解析する方法がわからないことです。どんな考えや助けも大歓迎です。ポール。

<script>
    $(document).ready(function () {
        $("#registerfor, #startdate, ").change(function () {
            // Get Variables
            var startdate = $("#startdate").val();
            var registerfor = $("#registerfor").val();
            // Add Years to Date
            var expirydate = startdate + registerfor;
            // Send Result on
            $("#expires").val(expirydate);
        });
    });
</script>
<input name="startdate" id="startdate" value="dd/mm/yyyy" />
<select id="registerfor" name="registerfor">
    <option value="1">1 Year</option>
    <option value="2">2 Years</option>
    <option value="3">3 Years</option>
</select>
4

6 に答える 6

35

迅速かつ簡単な解決策:

var myDate = new Date();
myDate.setFullYear(myDate.getFullYear() + nbYearsToAdd);

"nbYearsToAdd" は負になる場合があります。

于 2015-10-30T10:23:55.383 に答える
8

非常に単純な作業のように見えることが、非常に複雑になることがあります。

 $(document).ready( function () {

    $("#registerfor, #startdate").change( function () {

        var str = $("#startdate").val();

        if( /^\d{2}\/\d{2}\/\d{4}$/i.test( str ) ) {

            var parts = str.split("/");

            var day = parts[0] && parseInt( parts[0], 10 );
            var month = parts[1] && parseInt( parts[1], 10 );
            var year = parts[2] && parseInt( parts[2], 10 );
            var duration = parseInt( $("#registerfor").val(), 10);

            if( day <= 31 && day >= 1 && month <= 12 && month >= 1 ) {

                var expiryDate = new Date( year, month - 1, day );
                expiryDate.setFullYear( expiryDate.getFullYear() + duration );

                var day = ( '0' + expiryDate.getDate() ).slice( -2 );
                var month = ( '0' + ( expiryDate.getMonth() + 1 ) ).slice( -2 );
                var year = expiryDate.getFullYear();

                $("#expires").val( day + "/" + month + "/" + year );

            } else {
                // display error message
            }
        }
    });
});

ここにフィドルがあるので、実際にそれを見ることができます。

于 2013-02-04T12:20:46.523 に答える
1
var dt = new Date($("#startdate").val());

var updateDate = dt.setDate(dt.getFullYear() + $("#registerfor").val());

var dd = updateDate.getDate();
var mm = updateDate.getMonth();
var y = updateDate.getFullYear();

var someFormattedDate = dd + '/'+ mm + '/'+ y;
console.log(someFormattedDate);
于 2013-02-04T11:59:32.307 に答える
0

おい、それはすでに働いている。それでも日付に変換したい場合は、次のようにします。

var dat=Date.parse(startdate );
于 2013-02-04T12:21:17.517 に答える
-1

多くの日付ピッカーjqueryがネット上で利用可能です

これ

1 つは私のお気に入りで、実装が簡単で、必要に応じて編集できます。

コードからスクリプトを使用する場合は、日付の値をvar startdateのように直接渡すことができます

var startdate=<?php echo date("Y-m-d")?>

これを試してください..役立つかもしれません。

于 2013-02-04T12:01:55.337 に答える