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 での FastAPI デプロイの詳細なプロセス

Docker 学習https://www.cnblogs.com/poloyy/p/15257059...

Javascript サンプル プロジェクトでの虫眼鏡効果の実装プロセス

目次序文事例: JD.com の虫眼鏡効果の模倣オフセットシリーズクライアントシリーズスクロールシリ...

jsはショッピングサイトの虫眼鏡機能を実現します

この記事では、ショッピングサイトの虫眼鏡機能を実現するためのjsの具体的なコードを紹介します。具体的...

Zabbixを介してデータベース接続情報といくつかの拡張機能をすばやく取得します

背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...

MySQL トランザクション分離レベルの表示と変更の例

トランザクション分離レベルを確認するMySQL では、'%tx_isolation%'...

CSS を使用して 3 つのステップでショッピング モールのカード クーポンを作成する

今日は618日、主要なショッピングモールはすべてプロモーション活動を行っています。今日は、次のように...

ブラウザ内でHTMLタグを中央に配置するCSSスタイル

CSS スタイル:コードをコピーコードは次のとおりです。 <スタイル タイプ="te...

JConsoler を使って Tomcat の JVM メモリを監視する方法を説明します

目次1. Tomcatを監視する方法2. Java独自の監視コマンド3. Tomcatのトラブルシュ...

Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

ソースコードを通じて Linux に最新の安定バージョンの MySQL をインストールします: my...

MySQLがファントムリードを解決する方法の詳細な説明

1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...

Linux ps および pstree コマンドの知識ポイントのまとめ

Linux の ps コマンドは Process Status の略です。 ps コマンドは、システ...

HTML ページをスクロールするときに一部のコンテンツを固定位置に固定する方法

この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...

Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル

Laravel 5.4 のデフォルトの utf8mb64 文字エンコーディングをサポートするには、M...

Dockerコンテナでyumを呼び出すときのエラーの解決方法

dockerfile またはコンテナ内で yum を実行すると、エラーが報告され、ソースが見つかりま...