![](/img/trans.png)
[英]How do I convert this date range (month,year) date picker to show the output of the month in numeric format
[英]How i can set date picker range with in a financial year based on the document date? Im using JQUERY to do this
我想根據文檔日期在財政年度中設置我的日期選擇器范圍。我得到了文檔日期,但是我想在文檔處於編輯模式並且僅適用於特定日期部分時進行此操作。
<div class="col-md-6 no-padding">
<div class="col-md-12">
@Html.LabelFor(model => model.EnquiryDateFormatted, htmlAttributes: new { @class = "control-label lblrequired" })
</div>
<div class="col-md-12">
@Html.EditorFor(model => model.EnquiryDateFormatted, new { htmlAttributes = new { @class = "form-control newinput datepicker", @autocomplete = "off",@id="enquiryDateID" } })
@Html.ValidationMessageFor(model => model.EnquiryDateFormatted, "", new { @class = "text-danger" })
</div>
</div>
您可以為此使用setStartDate和setEndDate方法。
該代碼將是這樣的
$('#yourDatePickerID').datepicker('setStartDate', '04/01/2018');
$('#yourDatePickerID').datepicker('setEndDate', '03/30/2019');
要么
您可以使用數據屬性data-date-start-date
和data-date-end-date
<input type="text" class="form-control" data-date-end-date=“mm/dd/yyyy”>
用它來獲取財政年度
function getCurrentFinancialYear(strDocDate) {
var startYear = "";
var endYear = "";
var docDate = new Date(strDocDate);
if ((docDate.getMonth() + 1) <= 3) {
startYear = docDate.getFullYear() - 1;
endYear = docDate.getFullYear();
} else {
startYear = docDate.getFullYear();
endYear = docDate.getFullYear() + 1;
}
return {startDate : "01-Apr-" + startYear, endDate: "31-Mar-" + endYear };
}
alert(getCurrentFinancialYear("4/1/2018").startDate);
所以你的代碼應該像
$('#yourDatePickerID').datepicker('setStartDate', getCurrentFinancialYear(enquiryDateID).startDate );
$('#yourDatePickerID').datepicker('setEndDate', getCurrentFinancialYear(enquiryDateID).endDate);
您可以使用startDate
和endDate
設置來實施開始日期和結束日期,但是您需要創建一個函數來首先獲取會計年度范圍:
function getCurrentFiscalYear(date) {
var dates = {};
var docDate = new Date(date);
var month = docDate.getMonth();
if (month > 3) {
dates.sDate = new Date(docDate.getFullYear(), 3, 1);
dates.eDate = new Date(dates.sDate.getFullYear() + 1, dates.sDate.getMonth() - 1, 31);
}
else {
dates.sDate = new Date(docDate.getFullYear() - 1, 3, 1);
dates.eDate = new Date(docDate.getFullYear(), dates.sDate.getMonth() - 1, 31);
}
return dates;
}
然后,通過startDate
和endDate
屬性將上述函數分配給datepicker實例(除了日期字符串外,它們還接受JS Date
實例):
$('input.datepicker').datepicker({
format: "dd-M-yyyy",
startDate: getCurrentFiscalYear($('input.datepicker').val()).sDate, // start date
endDate: getCurrentFiscalYear($('input.datepicker').val()).eDate, // end date
maxViewMode: 0,
todayBtn: "linked",
clearBtn: true,
autoclose: true,
todayHighlight: true
});
注意:
如果您有多個日期選擇器來處理日歷選擇,請從最近的元素開始更改startDate
和endDate
的選擇器(例如,使用closest()
, siblings()
, find()
等)。
在這個小提琴中可以看到示例實現。
邊注:
所述EditorFor
含有htmlAttributes
參數僅適用於MVC 5.1及以上。 如果您的MVC版本是5.0或更低版本,請改用TextBoxFor
helper:
@Html.TextBoxFor(model => model.EnquiryDateFormatted, "{0:dd-MMM-yyyy}", new { @class = "form-control newinput datepicker", @autocomplete = "off", @id="enquiryDateID" })
這是我的問題的正確答案@kiranvj給我小的答案
我在這里張貼他的零件代碼和我的零件代碼
@kiranvj的代碼
function getCurrentFinancialYear(strDocDate) {
var startYear = "";
var endYear = "";
var docDate = new Date(strDocDate);
if ((docDate.getMonth() + 1) <= 3) {
startYear = docDate.getFullYear() - 1;
endYear = docDate.getFullYear();
} else {
startYear = docDate.getFullYear();
endYear = docDate.getFullYear() + 1;
}
return {startDate : "01-Apr-" + startYear, endDate: "31-Mar-" + endYear };
}
和我的零件代碼
$('input.datepicker').datepicker({
format: "dd-M-yyyy",
maxViewMode: 0,
todayBtn: "linked",
clearBtn: true,
autoclose: true,
todayHighlight: true,
startDate: getCurrentFinancialYear(enqDate).startDate,
endDate: getCurrentFinancialYear(enqDate).endDate
});
function getCurrentFinancialYear(strDocDate) {
var startYear = "";
var endYear = "";
var docDate = new Date(strDocDate);
if ((docDate.getMonth() + 1) <= 3) {
startYear = docDate.getFullYear() - 1;
endYear = docDate.getFullYear();
} else {
startYear = docDate.getFullYear();
endYear = docDate.getFullYear() + 1;
}
console.log({startDate : startYear+"-03-01", endDate: endYear+"-03-31" });
return {startDate : startYear+"-03-01", endDate: endYear+"-03-31" };
}
$(document).ready(function () {
$('.datepicker').datepicker({
format: 'yyyy-mm-dd',
maxViewMode: 0,
todayBtn: "linked",
clearBtn: true,
autoclose: true,
todayHighlight: true,
startDate: getCurrentFinancialYear($('input.datepicker').val()).startDate,
endDate: getCurrentFinancialYear($('input.datepicker').val()).endDate
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.