首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

jQuery 日期加減計算:存入日期 + 存期 = 提取日期的實現代碼

     編輯:程式設計綜合問答

需求描述

頁面包含「存入日期」(默認今天)和「存期」下拉框(如「三個月」「90天」),需自動計算並填充「提取日期」。

核心邏輯

// 獲取存入日期字符串 "2016-01-13"
var dateStr = $('#EntTime32').val();
// 解析為 Date 對象
var date = new Date(dateStr.replace(/-/g, '/'));  // 兼容 Safari
// 獲取存期(假設下拉框 value 為月數)
var months = parseInt($('#sel2').val());
// 日期加月
date.setMonth(date.getMonth() + months);
// 格式化回填
var result = date.getFullYear() + '-' + 
             ('0' + (date.getMonth() + 1)).slice(-2) + '-' + 
             ('0' + date.getDate()).slice(-2);
$('#EntTime31').val(result);

完整事件綁定示例

$('#sel2').on('change', function() {
    var baseDateStr = $('#EntTime32').val();
    if (!baseDateStr) return;
    var baseDate = new Date(baseDateStr.replace(/-/g, '/'));
    var addMonths = parseInt($(this).val()) || 0;
    baseDate.setMonth(baseDate.getMonth() + addMonths);
    var out = baseDate.getFullYear() + '-' + 
              String(baseDate.getMonth() + 1).padStart(2, '0') + '-' + 
              String(baseDate.getDate()).padStart(2, '0');
    $('#EntTime31').val(out);
});

// 頁面加載初始化存入日期為今天
$(function() {
    var today = new Date();
    var todayStr = today.getFullYear() + '-' + 
                   String(today.getMonth() + 1).padStart(2, '0') + '-' + 
                   String(today.getDate()).padStart(2, '0');
    $('#EntTime32').val(todayStr);
    $('#sel2').trigger('change');  // 觸發計算
});

注意事項

  • new Date('2016-01-13') 在 Safari/舊瀏覽器可能解析為 UTC,推薦 replace(/-/g, '/') 或使用 moment.js/dayjs。
  • 月份加法自動處理月末天數:1月31日 + 1個月 = 2月28/29日(JS 原生行為)。
  • 下拉框 value 建議直接存數字(月數),避免解析中文「三個月」。
界面截圖 運行效果
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved