WeChat アプレット wxs 日付と時刻処理の実装例

WeChat アプレット wxs 日付と時刻処理の実装例

WXS (WeiXin Script) は、小規模なプログラム用のスクリプト言語です。WXS は JavaScript とは異なる言語であり、JavaScript と一致しない独自の構文を持っています。 wxs では使用できませんが、日常的に使用される JavaScript 関数が多数含まれています。最近、リストを作成しているときに、時間のフォーマット操作に携わりました。この問題が発生しました。以前作成した書式設定ツール関数がアプレットプロジェクトの wxs ファイルに直接コピーされ、関数を正常に実行できませんでした。これらには以下のエラーが含まれます

  • 文字列の置換関数における正規表現の使い方が異なります。var a = /[0-9]/ のように直接宣言することはできません。正しい方法は、var reg = getRegExp("-", "g"); です。
  • 現在の時刻は new Date() ではなく getDate メソッドで取得できます。
  • getDate('2018/12/12')は日付に対応する日付型の時刻を取得できます。

1. 日付までのタイムスタンプ

wxs で日付を処理するには、new Date() ではなく getDate(time) を使用する必要があります。

wxsファイル内

var フィルター = {
    フォーマット番号: 関数 (n) {
        n = n.toString()
        n[1] ? n : '0' + n を返す
      },
    parseTime: 関数 (時間, タイプ) {
        if (time == null || type == '') {
          戻る ''
        }
        (引数の長さ === 0)の場合{
          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 == '月') {
          時間_str = y + '-' + m;
        } そうでない場合 (type == 'date') {
          time_str = y + '-' + m + '-' + d;
        } そうでない場合 (type == 'datetime') {
          time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
        } そうでない場合 (type == 'onlyMonth') {
          時間の長さ
        } そうでない場合 (type == 'onlyYear') {
          タイムスタンプy
        }
        time_strを返す
      },
 }
モジュール.エクスポート = {
    パースタイム: filter.parseTime、
}

wxmlでの使用

<wxs モジュール="フィルター" src="../../../filters/filter.wxs"></wxs>
<text>{{filters.parseTime(time,'date')}}</text>

2. UTCを北京時間に変換する

UTC 時間は北京時間より 8 時間遅れています。Apple の携帯電話では、時間を処理する前に「Z」を削除する必要があります。

var フィルター = {
    フォーマット番号: 関数 (n) {
        n = n.toString()
        n[1] ? n : '0' + n を返す
      },
    parseTime: 関数 (時間, タイプ) {
    if (time == null || time == '') {
      戻る ''
    }
    (引数の長さ === 0)の場合{
      nullを返す
    }
    var 日付;
    if (typeof time === 'object') {
      日付 = 時間
    } それ以外 {
      if (('' + 時間).長さ === 10) {
        時間 = parseInt(時間) * 1000
      } それ以外 {
        time = time.replace("Z", " ").replace(getRegExp('-', 'g'), "/")//Z を削除します。Apple の携帯電話と互換性があります。var ts = time.split('T')
        var t1 = ts[0]
        var t2 = ts[1].split('.')[0]
        時間 = 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 == '月') {
      時間_str = y + '-' + m;
    } そうでない場合 (type == 'date') {
      time_str = y + '-' + m + '-' + d;
    } そうでない場合 (type == 'datetime') {
      time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
    } そうでない場合 (type == 'onlyMonth') {
      時間の長さ
    } そうでない場合 (type == 'onlyYear') {
      タイムスタンプy
    }
    time_strを返す
  },
}
モジュール.エクスポート = {
    パースタイム: filter.parseTime、
}

WeChatアプレットwxsの日付と時刻処理の実装例に関するこの記事はこれで終わりです。より関連性の高いアプレットwxsの日付と時刻のコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き閲覧してください。今後も123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChat アプレット学習 WXS 使用方法チュートリアル
  • WeChatアプレットwxsが天井効果を達成
  • アプレットはwxsを使用してwxmlが小数点2桁を保持する問題を解決します。
  • WeChat アプレットは wxss 属性を実装します。js を介して wxml を操作する例です。
  • wxssを使用して画像を読み込み、WeChatアプレットでアニメーション効果を実現します
  • WeChat アプレット検索コンポーネント wxSearch の例の詳細な説明
  • WeChat アプレット レス ファイルを wxss ファイルにコンパイルする方法
  • WeChat ミニプログラムチュートリアル: WXSS
  • WeChat ミニプログラム WXML、WXSS、JS の紹介と詳細な説明

<<:  Linux lsof コマンドの使用方法の詳細な説明

>>:  MySQL が自動的に再起動する問題の解決方法

推薦する

CSS を使用して小さな画像をプルダウンし、大きな画像と情報を表示する方法

今日は、Taobao、JD.comなどのショッピングモールでよく使われている、小さな画像の上にマウス...

CSS3で作成した画像スクロール効果

成果を達成する実装コードhtml <base href="https://s3-us...

JavaScript の document.activeELement フォーカス要素の紹介

目次1. デフォルトの焦点はボディにあります2. テキストボックスのフォーカスを手動で取得する3. ...

仮想マシンUbuntu 16.04がインターネットに接続できない問題の解決策

Ubuntu をインストールしたばかりですが、開いたときにネットワーク接続がありませんでした。右上隅...

MySQL のデータの偶発的な削除の解決策と kill ステートメントの原則

mysql が誤ってデータを削除しました削除ステートメントを使用して誤ってデータ行を削除する誤ってデ...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...

Vue3 親子コンポーネントパラメータ転送における sync 修飾子の使用法の詳細な説明

目次一方向データフローの説明Vue2.x の使用法親コンポーネントに変更を通知するイベントのフォーム...

Docker で nginx の https を設定する方法

https をサポートしていない Web サイトは、ブラウザによって徐々に安全でないとマークされるた...

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

mysql mycat ミドルウェアの簡単な紹介

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...

Nginx+FastDFSでイメージサーバーを構築

設置環境セントス環境依存性: yum -y gccをインストールします yum インストール -y ...