【发布时间】:2020-11-05 10:49:23
【问题描述】:
我使用 daterangerpicker 和 moment.js 作为日期范围。现在,当我将值从数据库传递到 daterangepicker 时,它需要一些默认时间戳。最初我尝试查看 daterangepicker 格式,但没有得到任何帮助。后来我尝试探索moment.js方法仍然没有任何运气
我在浏览器控制台上检查的这些值
日期格式 "MM-DD-YYYY hh a"
$(this).val()
“2020 年 11 月 6 日下午 5 点”
但不知何故,下午 5 点正在转换为上午 12 点。下面是我的代码
var dateFormat = $(this).data("date-format") || "MM/DD/YYYY hh A";
var currentDate = $(this).val().length > 1 ? moment($(this).val(), dateFormat)._d : null;
$(this).attr("autocomplete", "off");
var dates = $(this).daterangepicker(
{
singleDatePicker: true,
locale: {
format: dateFormat
}
},
function(start, end, label)
{
$(this).val(start.format(dateFormat));
}
);
if(currentDate && currentDate != 'Invalid Date'){
dates.daterangepicker( { startDate: currentDate } );
}
dates.daterangepicker({ singleDatePicker: true, showDropdowns: true, autoApply: false, timePicker: true, minDate: Abc.getAdminMinDateTime(), locale: { format: dateFormat} });
日期范围选择器版本 3.0.5 Moment.js 2.18.1
【问题讨论】:
-
看起来像是时区问题
-
@AbishekKumar 这不是时区问题
-
如果你想要一个日期字符串,你应该使用
format。相反,您使用的是_d,它在 moment.js 文档中的任何地方都没有记录,并且由于它是在库内部使用并且可能会发生变化,因此可能会导致错误的结果。
标签: javascript jquery momentjs daterangepicker