【发布时间】:2017-09-10 06:59:55
【问题描述】:
我有一个 .cshtml,其中实现了 daterangepicker.js。此页面通过 ViewBag 从父页面获取日期范围(到日期、开始日期)。代码如下:
var _FromDate;
var _EndDate;
$(function () {
var from1 = '@ViewBag.from_date';
var from = from1.split("-");
var f = new Date(from[0], from[1] - 1, from[2]);
var to1 = '@ViewBag.to_date';
var to = to1.split("-");
var t = new Date(to[0], to[1] - 1, to[2]);
var start = (f.getFullYear() + '-' + pad((f.getMonth() + 1), 2) + '-' + pad(f.getDate(), 2));
var end = (t.getFullYear() + '-' + pad((t.getMonth() + 1), 2) + '-' + pad(t.getDate(), 2));
function cb(start, end) {
$('#reportrange span').html(start + ' . ' + end);
var dateRange = $('#reportrange span').html();
_FromDate = dateRange.substring(0, dateRange.indexOf('.'));
_EndDate = dateRange.substring(dateRange.indexOf('.') + 1);
};
function pad(str, max) {
str = str.toString();
return str.length < max ? pad("0" + str, max) : str;
}
$('#reportrange').daterangepicker({
startDate: start,
endDate: end,
locale: { format: "YYYY-MM-DD" },
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, cb);
cb(start, end);
});
现在的问题是:运行页面时,daterangepicker 将日期返回为 a string of numbers
问题的原因是什么?我一步一步浏览了代码,我找不到问题。
感谢任何帮助!
【问题讨论】:
-
你能不能 console.log 把 from1 和 to1 的值粘贴到这里,就在它们各自的声明之后...
-
@ThirueswaranRajagopalan 给你:from1 显示 2017-09-10 和 to1 显示 2017-09-10(因为在上一页中我选择了“今天”,所以它显示 from1 和to1
-
一切都好。它只是 ` $('#reportrange span').html(start + ' . ' + end);` start 和 end 被转换为 unix 时间戳(毫秒) .
-
@ThirueswaranRajagopalan 好的,那我如何让它正常显示日期?
-
将其作为答案发布...
标签: javascript jquery momentjs unix-timestamp daterangepicker