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 コマンドの使用法の詳細な説明

推薦する

webkit-box-reflect を巧みに使用してさまざまな動的効果を実現する (要約)

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)

1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...

Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析

Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...

Mysql の主キー インデックスと非主キー インデックスの違いについて簡単に説明します。

目次インデックスとは何か主キーインデックスと通常のインデックスの違いインデックスにはどのデータ構造が...

Node.jsがES6モジュールを処理する方法の詳細な説明

目次1. 2つのモジュールの違い2. Node.jsとの違い3. CommonJSモジュールの読み込...

Vue のリスナーの基本的な使用例

目次序文1. リスナーの基本的な使い方2. リスナー形式3. ページに入るとすぐに監視とディープモニ...

MySQL 構成 SSL マスタースレーブ レプリケーション

MySQL5.6 SSLファイルの作成方法公式ドキュメント: https://dev.mysql.c...

MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

パスワード入力後にMySQLデータベースがクラッシュする問題と解決策1 ケースの説明最近、基本的な機...

Linuxのpasswdコマンドの使用

1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...

ユーザー中心設計

最近、デジタル デザイン コミュニティで「誰が何を担当するのか」という明らかな混乱についてよく質問さ...

VUE を使用して Ali Iconfont ライブラリをオンラインで呼び出す方法

序文何年も前、私はサーバー側の初心者でしたが、業界の競争が激しくなるにつれて、フロントエンドの初心者...

MySQL インデックス障害の上位 10 の問題の概要

目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....

MySQL マスタースレーブ同期遅延の原因と解決策

歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...

docker tagとdocker pushの使い方の詳しい説明

Dockerタグの詳しい説明docker tag コマンドの使い方と、ローカルイメージを daocl...

MySQL 学習チュートリアル クラスター化インデックス

クラスタリングは、実際には InnoDB データベース エンジンに関連しています。したがって、インデ...