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

推薦する

HTMLのテーブルの内容は中央に水平と垂直に表示されます

CSSスタイルファイルで指定 #class td /*表のテキストを左右上下に揃えるように設定する*...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

MySQL 8.0.18 安定版がリリースされました! 予想通りハッシュ結合が実装されました

MySQL 8.0.18 安定版 (GA) が昨日正式にリリースされ、Hash Join も期待通り...

H5レイアウト実装手順における天井と底部の吸引を解決するための純粋なCSS

どのような製品について言及したいですか?最近、ユーザーがマーケティングの変化をよりよく観察できるよう...

Vueはechartsに基づいて3次元の縦棒グラフを実装します

3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...

Linux システムによって報告される tcp_mark_head_lost エラーの処理方法

問題の説明最近、ホストから次のカーネル情報が報告されました。 7月8日 10:47:42 cztes...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

Windows システムで MySQL が起動しない場合の一般的な解決策

MySQL 起動エラーWindows 10 に MySQL をインストールする前は、net star...

Linux で unzip コマンドを使用して複数のファイルを解凍する方法

Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...

CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

フロントエンド開発では、スクロールバーを非表示にしながらスクロールをサポートしなければならないという...

vue+element-uiはヘッドナビゲーションバーコンポーネントを実装します

この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...

Vue パッケージ化後の空白ページの解決策

1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...

HTML+CSSで充電水滴融合特殊効果コードを実現

目次序文:成し遂げる:要約:まず効果を見てみましょう: 序文:このアイデアは、Bilibili のア...