0

開始日と期間を指定して終了日を計算する必要があります。開始日は日付、期間は年数です。したがって、終了日は : になりますstart date + duration - 1 day

たとえば、開始日が15/06/2012で期間が 12 か月の場合、終了日は になります14/06/2013

どうすればこれを達成できますか?

4

4 に答える 4

1

JS で日付を操作するために、私は常に 7 つの関数を作成します: addSeconds、addMinutes、addHours、addDays、addWeeks、addMonths、addYears。

ここで例を見ることができます: http://jsfiddle.net/tiagoajacobi/YHA8x/

使い方:

var now = new Date();
console.log(now.addWeeks(3));
console.log(now.addYears(1));
console.log(now.addDays(-20));

これは関数です:

Date.prototype.addSeconds = function(seconds) {
    this.setSeconds(this.getSeconds() + seconds);
    return this;
};

Date.prototype.addMinutes = function(minutes) {
    this.setMinutes(this.getMinutes() + minutes);
    return this;
};

Date.prototype.addHours = function(hours) {
    this.setHours(this.getHours() + hours);
    return this;
};

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + days);
    return this;
};

Date.prototype.addWeeks = function(weeks) {
    this.addDays(weeks*7);
    return this;
};

Date.prototype.addMonths = function (months) {
    var dt = this.getDate();

    this.setMonth(this.getMonth() + months);
    var currDt = this.getDate();

    if (dt !== currDt) {  
        this.addDays(-currDt);
    }

    return this;
};

Date.prototype.addYears = function(years) {
    var dt = this.getDate();

    this.setFullYear(this.getFullYear() + years);

    var currDt = this.getDate();

    if (dt !== currDt) {  
        this.addDays(-currDt);
    }

    return this;
};
于 2014-04-25T12:03:03.657 に答える
0

jQuery でこれを行うことはできません。次のように Javascript で行う必要があります。

<script type="text/javascript">

    // Todays date in milliseconds
    var today=new Date().getTime();

    // Add milliseconds in a year (minus one day) to todays date
    var yearLater=new Date(today + ((31557600 - 86400) * 1000));
    document.write(yearLater);

</script>
于 2012-07-18T04:11:49.373 に答える
0

日付を追加するのに jQuery は必要ありません。Javascript はそれを行うのに十分素晴らしいです。

var myDate=new Date(year,month,date,0,0,0).getTime();
var day_milli= 1000*60*60*24;
var newDate=new Date(myDate + day_milli * (duration -1));
alert(newDate);
于 2012-07-18T04:17:51.213 に答える