위 챗 애플 릿 wxs 날짜 시간 처리 구현 예제

WXS(WeiXin Script)는 애플 릿 의 스 크 립 트 언어 입 니 다.wxs 와 javascript 는 서로 다른 언어 로 문법 이 있 으 며 자바 script 과 일치 하지 않 습 니 다.그 중에서 도 자 바스 크 립 트 함 수 를 많이 포함 하고 있 으 며,wxs 에 서 는 똑 같이 사용 할 수 없습니다.최근 에 목록 을 만 들 때 시간 포맷 작업 과 관련 이 있 습 니 다.이 문제 에 부 딪 혔 습 니 다.이전에 작성 한 포맷 도구 함수 가 애플 릿 프로젝트 의 wxs 파일 에 직접 복사 되 어 함수 가 정상적으로 실행 되 지 않 습 니 다.그 중 에는 아래 의 몇 가지 잘못 이 포함 되 어 있다.
4.567917.정규 표현 식 은 문자열 의 replace 함수 에서 사용 하 는 방법 이 다 르 기 때문에 var a=/[0-9]/를 직접 사용 할 수 없습니다.올 바른 방식 은 var reg=getRegExp("-","g")입 니 다
  • 획득 현재 시간 은 new Date()를 통 해 얻 을 수 없 으 며 getDate 방법 으로 얻 을 수 있 습 니 다
  • getDate('2018/12/12')는 해당 날짜 의 date 형식의 시간 을 얻 을 수 있 습 니 다.
  • 1.타임 스탬프 날짜
    wxs 에서 날 짜 를 처리 하려 면 getDate(time)를 사용 해 야 하 며,new Date()를 사용 하여 날 짜 를 처리 할 수 없습니다.
    wxs 파일 에서
    
    var filter = {
        formatNumber: function (n) {
            n = n.toString()
            return n[1] ? n : '0' + n
          },
        parseTime: function (time, type) {
            if (time == null || type == '') {
              return ''
            }
            if (arguments.length === 0) {
              return null
            }
            var date = getDate(time);// wxs     new Date()     
            console.log("date", date);
            var y = date.getFullYear();
            var m = filter.formatNumber(date.getMonth() + 1);
            var d = filter.formatNumber(date.getDate());
            var h = filter.formatNumber(date.getHours());
            var i = filter.formatNumber(date.getMinutes());
            var s = filter.formatNumber(date.getSeconds());
            var a = filter.formatNumber(date.getDay());
            var time_str = "";
            if (type == 'month') {
              time_str = y + '-' + m;
            } else if (type == 'date') {
              time_str = y + '-' + m + '-' + d;
            } else if (type == 'datetime') {
              time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
            } else if (type == 'onlyMonth') {
              time_str = m;
            } else if (type == 'onlyYear') {
              time_str = y;
            }
            return time_str
          },
     }
    module.exports = {
        parseTime: filter.parseTime,
    }
    wxml 에서 사용
    
    <wxs module="filters" src="../../../filters/filter.wxs"></wxs>
    <text>{{filters.parseTime(time,'date')}}</text>
    2.UTC 베 이 징 전환 시간
    UTC 시간 은 베 이 징 시간 보다 8 시간 늦 어 애플 폰 에서'Z'를 제거 한 뒤 처리 해 야 한다.
    
    var filter = {
        formatNumber: function (n) {
            n = n.toString()
            return n[1] ? n : '0' + n
          },
        parseTime: function (time, type) {
        if (time == null || time == '') {
          return ''
        }
        if (arguments.length === 0) {
          return null
        }
        var date;
        if (typeof time === 'object') {
          date = time
        } else {
          if (('' + time).length === 10) {
            time = parseInt(time) * 1000
          } else {
            time = time.replace("Z", " ").replace(getRegExp('-', 'g'), "/")//  Z,      
            var ts = time.split('T')
            var t1 = ts[0]
            var t2 = ts[1].split('.')[0]
            time = t1 + " " + t2
            time = getDate(time).getTime() + 8 * 3600000;//utc         8  
          }
          date = getDate(time)//    new Date()
        }
        var y = date.getFullYear();
        var m = filter.formatNumber(date.getMonth() + 1);
        var d = filter.formatNumber(date.getDate());
        var h = filter.formatNumber(date.getHours());
        var i = filter.formatNumber(date.getMinutes());
        var s = filter.formatNumber(date.getSeconds());
        var a = filter.formatNumber(date.getDay());
        var time_str = "";
        if (type == 'month') {
          time_str = y + '-' + m;
        } else if (type == 'date') {
          time_str = y + '-' + m + '-' + d;
        } else if (type == 'datetime') {
          time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
        } else if (type == 'onlyMonth') {
          time_str = m;
        } else if (type == 'onlyYear') {
          time_str = y;
        }
        return time_str
      },
    }
    module.exports = {
        parseTime: filter.parseTime,
    }
    
    위 챗 애플 릿 wxs 날짜 시간 처리 에 관 한 예제 구현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 애플 릿 wxs 날짜 시간 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기