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

推薦する

JavaScript でクールなマウス テーリング効果を実装

これを見た後、あなたにも手ができて、さまざまな美しい小さなしっぽを作れるようになることを保証します!...

MySQLで時間を判定条件として使用する方法

背景: 開発プロセスでは、現在の月、現在の日、現在の時間、今後数日など、時間を判断条件としてデータを...

Typescript の as、疑問符、感嘆符の詳細な説明

1. asキーワードはアサーションを示すTypescript では、アサーションを表現する方法が 2...

MySQLデータベースでコマンドを自動補完する3つの方法

注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...

Vue3 を使用してアップロード コンポーネントを実装するためのサンプル コード

目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...

MySql 最適化のための my.ini 中国語構成スキームの詳細な説明: InnoDB、4GB メモリ、および複数のクエリ

この記事は、4G メモリ システム用の MySQL 構成ファイル ソリューションです (主に Inn...

デジタル時計効果を実現するJavaScript

この記事の例では、JavaScriptでデジタル時計効果を実装するための具体的なコードを参考までに共...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

MySQL 8.0.24 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.24のインストールチュートリアルを参考までに紹介します。具体的な内...

CSS テキスト配置実装コード

フォームを作成するときに、名前、携帯電話番号、出生地などの 2 つのフィールドを揃える状況に遭遇する...

Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順

序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...

LeetCode の SQL 実装 (181. 従業員は管理職よりも収入が高い)

[LeetCode] 181.従業員の収入が管理職よりも多い従業員テーブルには、マネージャーを含む...

MySQL の垂直テーブルを水平テーブルに変換する方法と最適化のチュートリアル

1. 縦型テーブルと横型テーブル垂直テーブル: テーブル内のフィールドとフィールド値はキーと値の形式...

CSSトランジションは高さを変更することで要素を拡大したり縮小したりします。

一般的な開発ニーズとして、要素の一部を必要になるまで折りたたんでおきたいことが挙げられます。 Boo...

Docker 起動時の ES メモリ オーバーフローの解決方法

jvm.options ファイルを elasticsearch 構成に追加し、スタック サイズを変更...