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 が自動的に再起動する問題の解決方法

推薦する

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

VueはPCで写真をアップロードする機能を実現

この記事の例では、PC上で写真アップロード機能を実現するためのVueの具体的なコードを参考までに共有...

Linuxシステムのログの詳細な紹介

目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策

問題:あるサーバー上の PHP プログラムは、localhost アドレス経由でデータベースに接続で...

簡単な計算機を実装する小さなプログラム

この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

vue.js でよく使われる v 命令の解析

目次Vue でのモデルバインド表示の if の v-text の説明v-html: v-オンv-if...

Apache クロスドメイン リソース アクセス エラーの解決策

多くの場合、大規模および中規模の Web サイトでは、静的リソース (フォント ファイル、画像など)...

仕事の効率を上げるJS略語スキル20選

目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...

MySQLを閉じることができない問題を解決する方法

mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...

Linux resolv.conf の簡単な分析

1. はじめにresolv.conf は、さまざまなオペレーティング システムのドメイン ネーム シ...