You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fengyuanchen/datepicker仅返回日值,需改为yyyy-mm-dd格式求助

解决fengyuanchen/datepicker获取完整yyyy-mm-dd日期的问题

我看你遇到的问题根源在于用了JavaScript原生的Date.getDate()方法——这个方法本来就只返回日期中的“日”部分(1-31),和组件本身无关~ 下面给你两种靠谱的解决办法:

方法1:利用组件自带的格式化能力

这个datepicker组件本身提供了format方法,可以直接把选中的Date对象转成你配置的yyyy-mm-dd格式,不用自己手动拼接:

jQuery('[data-toggle="datepicker"]').datepicker({
  format: 'yyyy-mm-dd',
  pick: function(e) {
    // 调用组件的format方法格式化选中的日期
    var formattedDate = jQuery(this).datepicker('format', e.date);
    jQuery(this).attr('value', formattedDate);
  }
});

方法2:手动格式化Date对象

如果你不想依赖组件的内置方法,也可以自己处理Date对象,注意月份是从0开始计数(1月对应0),所以要加1,还要给个位数的月、日补零:

jQuery('[data-toggle="datepicker"]').datepicker({
  format: 'yyyy-mm-dd',
  pick: function(e) {
    var date = e.date;
    // 获取四位年份
    var year = date.getFullYear();
    // 获取月份,加1后补零
    var month = String(date.getMonth() + 1).padStart(2, '0');
    // 获取日期,补零
    var day = String(date.getDate()).padStart(2, '0');
    // 拼接成目标格式
    var formattedDate = `${year}-${month}-${day}`;
    jQuery(this).attr('value', formattedDate);
  }
});

另外提个小细节:其实这个组件默认会自动把选中的日期填充到输入框里,如果你只是为了表单提交获取值,可能不需要手动设置value属性?不过如果你的场景确实需要手动处理,上面两种方法都能完美解决问题~

内容的提问来源于stack exchange,提问作者scopeak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:38:20