sencha表單裏的日期輸入框獲取日期值進行比較

sencha 做有自己的輸入日期輸入框,xtype: 'datepickerfield'。

提交表單後,如果是使用getValue(),那麼取到的值是一個日期對象;如果是用getFormattedValue(),取到的值是一個顯示區域的格式的值,比如設置有:dateFormat : 'd/m/Y', 那麼取到的值也是d/m/Y格式;如果需求要求顯示的日期剛好能進行比較,那就還好;如果不一樣,方法有兩種了:

1、取到格式化的值,然後進行字符串切割,做到可以加減比較來算出天數,不過相差月份轉換爲天數,也是一個難題,因爲有大小月,閏月的說法,這種做法不合理,效果也差;

2、用getValue(),取到對象,然後使用js的日期函數,進行計算:

先取得日期輸入框的對象

var date_from = Ext.ComponentQuery.query('datepickerfield')[0];//從上往下,第一個日期輸入框
var date_to = Ext.ComponentQuery.query('datepickerfield')[1];//第二個日期輸入框

(1)比較日期的大小:

Date.parse(date_to.getValue())>=Date.parse(date_from.getValue());//實際是時間戳的對比
(2) 計算日期的相差天數:

var dateMilli = Date.parse(date_to.getValue())-Date.parse(date_from.getValue());//日期減,得到時間戳
var count_day = Math.ceil(dateMilli/(24*3600*1000));//時間戳進行除法,轉換爲天數,然後向上取整,因爲1.7,1.5,1.4天也算是兩天

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章