Blame view

src/components/date-picker/util.js 1.61 KB
0f677893   梁灏   update DatePicker
1
2
  import dateUtil from '../../utils/date';
  
0f677893   梁灏   update DatePicker
3
  export const toDate = function(date) {
58ff14d7   Sergio Crisostomo   Make date more IE...
4
5
6
7
8
9
10
11
12
13
14
      let _date = new Date(date);
      // IE patch start (#1422)
      if (isNaN(_date.getTime()) && typeof date === 'string'){
          _date = date.split('-').map(Number);
          _date[1] += 1;
          _date = new Date(..._date);
      }
      // IE patch end
  
      if (isNaN(_date.getTime())) return null;
      return _date;
0f677893   梁灏   update DatePicker
15
16
17
18
19
20
21
22
23
24
25
26
27
  };
  
  export const formatDate = function(date, format) {
      date = toDate(date);
      if (!date) return '';
      return dateUtil.format(date, format || 'yyyy-MM-dd');
  };
  
  export const parseDate = function(string, format) {
      return dateUtil.parse(string, format || 'yyyy-MM-dd');
  };
  
  export const getDayCountOfMonth = function(year, month) {
c91c30cc   Sergio Crisostomo   Date utils improv...
28
      return new Date(year, month + 1, 0).getDate();
0f677893   梁灏   update DatePicker
29
30
31
32
33
34
35
36
  };
  
  export const getFirstDayOfMonth = function(date) {
      const temp = new Date(date.getTime());
      temp.setDate(1);
      return temp.getDay();
  };
  
c91c30cc   Sergio Crisostomo   Date utils improv...
37
38
39
40
41
42
  export const siblingMonth = function(src, diff) {
      const temp = new Date(src); // lets copy it so we don't change the original
      const newMonth = temp.getMonth() + diff;
      const newMonthDayCount = getDayCountOfMonth(temp.getFullYear(), newMonth);
      if (newMonthDayCount < temp.getDate()) {
          temp.setDate(newMonthDayCount);
0f677893   梁灏   update DatePicker
43
      }
c91c30cc   Sergio Crisostomo   Date utils improv...
44
      temp.setMonth(newMonth);
0f677893   梁灏   update DatePicker
45
  
c91c30cc   Sergio Crisostomo   Date utils improv...
46
47
      return temp;
  };
0f677893   梁灏   update DatePicker
48
  
c91c30cc   Sergio Crisostomo   Date utils improv...
49
50
  export const prevMonth = function(src) {
      return siblingMonth(src, -1);
0f677893   梁灏   update DatePicker
51
52
53
  };
  
  export const nextMonth = function(src) {
c91c30cc   Sergio Crisostomo   Date utils improv...
54
      return siblingMonth(src, 1);
2dbbd7de   梁灏   update TimePicker
55
56
  };
  
c91c30cc   Sergio Crisostomo   Date utils improv...
57
  export const initTimeDate = function() {
2dbbd7de   梁灏   update TimePicker
58
59
60
61
62
      const date = new Date();
      date.setHours(0);
      date.setMinutes(0);
      date.setSeconds(0);
      return date;
c91c30cc   Sergio Crisostomo   Date utils improv...
63
  };