Excel をインポートするときに js で時間を変換する正しい方法について

Excel をインポートするときに js で時間を変換する正しい方法について

1. 基本

1. Excel の日付は 1900-1-0 から計算されるため、1900-1-1 は 1 日です。

2. js の日付は 1970-1-1 08:00:00 から始まります。

Excel での時間変換は次のとおりです。

[全般] をクリックすると、変更は次のようになります。

2. 問題の説明

多くの場合、Excel にデータをインポートすると、デジタル時刻が解析されます。この場合、時刻の書式変換を実行する必要があります。

3. 解決策

1. 1970-1-1 から 1900-1-1 を引くと、その差は 25567 日、0 時間、5 分、43 秒になります。

2. 追加の 1 日と 8 時間を差し引きます。

js コードは次のとおりです。

time = new Date((43831-25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000) とします。
年 = time.getFullYear() + '' とします
console.log('年:'+年)
月 = time.getMonth() + 1 + '' とします。
console.log('月:'+月)
date = time.getDate() + '' とします。
console.log('データ:'+日付)

付録: js を使用して Excel の日付形式を変換する際の問題

js-xlsxプラグインを使用してExcelを読み込む場合、2018/10/16などのデータは自動的に48264.12584511に変換されます。

したがって、手動で元に戻す必要があります。

// Excel は 2018/01/01 の時刻形式を読み取ると、それを 46254.1545151415 のような数値に変換します。numb は渡された整数で、format は間隔を表す記号です。formatDate(numb, format) {
      定数時間 = 新しい日付((数値 - 1) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      定数年 = time.getFullYear() + ''
      定数月 = time.getMonth() + 1 + ''
      定数日付 = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        年 + 形式 + 月 + 形式 + 日付を返す
      }
      年 + (月 < 10 ? '0' + 月 : 月) + (日 < 10 ? '0' + 日付 : 日) を返します
    },
  コンソール.log(formatDate(42618, '/')) // 2016-9-5

要約する

これで、Excel をインポートするときに js で時間を正しく変換する方法に関するこの記事は終わりです。Excel をインポートするときに js で時間を正しく変換する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js タイムスタンプと日付形式間の変換
  • JavaScript のタイムスタンプと日付文字列の変換コード (超シンプル)
  • js の時間形式とタイムスタンプの変換サンプルコード
  • js での時刻変換 - ミリ秒を日付と時刻に変換するサンプル コード
  • JavaScript UTC時間変換方法の詳しい説明
  • JSは時間秒を日、時間、分、秒の文字列に変換します
  • JSは時間関連の関数を取得し、タイムスタンプと時刻の日付を変換します
  • Vue.js の時間変換コードとタイムスタンプから時間文字列への変換
  • ローカル時間を他のタイムゾーンに変換する JavaScript スクリプト
  • jsは時間を取得し、文字列とタイムスタンプ間の変換を実装します

<<:  MySQL インデックスクエリ最適化スキルを習得するための記事

>>:  Linux での stat 関数と stat コマンドの使用法の詳細な説明

推薦する

Nginx 正規表現の詳細な説明

Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

MySQLで大きなテーブルを正常に削除する方法の詳細な説明

序文テーブルを削除するには、無意識に思い浮かぶコマンドは、DROP TABLE "テーブル...

AngularJSにおける括弧の役割の詳細な説明

1. 括弧の役割1.1 角括弧 [ ]属性名が角括弧で囲まれている場合、右側には式の値が割り当てられ...

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

Alibaba Cloud Centos6.X でメールを送信する際に発生するさまざまな問題

序文: Webサービスを提供するために、Alibabaクラウドホストを新しくインストールしました。す...

小さなアイコンのフロントエンド処理ソリューションのグラフィカルな説明

序文この記事を始める前に、複数選択の質問をしてみましょう。フロントエンド開発でビルド ツールを使用す...

Docker に ElasticSearch 6.x をインストールする詳細なチュートリアル

まず、イメージをプルします(またはコンテナを作成するだけで、自然にプルされます)。 docker p...

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

Ubuntu仮想マシンでシリアル通信にcutecomを使用する方法

Ubuntu仮想マシンでのシリアル通信にcutecomを使用する1. cutecomをインストールす...

要素 el-table テーブルの二次カプセル化 (テーブルの高さの調整付き)

序文会社でのインターンシップ中、フロントエンド開発にはvue+element-uiフレームワークを使...

Python Django アプリケーションを Docker 化する方法

Docker は、開発者やシステム管理者がアプリケーションを軽量コンテナとして構築およびパッケージ化...

CSS3を使用してボタンホバーフラッシュダイナミック特殊効果コードを実装する

CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...

VMware ESXi 5.5 の展開および構成図のプロセス

目次1. インストール要件2. OSイメージのダウンロード3. VMware Workstation...

MySQL データ圧縮パフォーマンス比較の詳細

目次1. テスト環境1.1 ハードウェアとソフトウェア1.2 テーブル構造2. テストの目的2.1 ...

Linux システム AutoFs 自動マウント サービスのインストールと構成

目次序文1. サービスプログラムをインストールする2. メイン設定ファイルを書く3. サブ構成ファイ...