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

推薦する

hasLayout によって発生する CSS バグの一覧

IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

Vue でのカスタムディレクティブの基本的な使用方法

目次序文文章1. グローバル登録2. 部分登録3. フック機能とパラメータ設定4. 柔軟な使い方(1...

CSS ロリポップを描くサンプルコード

背景: 毎日少しずつ進歩し、少しずつ積み重ねていけば、どんどん良くなっていきますコード: <!...

知っておくべき 25 の Vue のヒント

目次1. プロパティを型リストに制限する2. デフォルトのコンテンツと拡張ポイント3. ネストされた...

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

mysql-8.0.17-winx64 のデプロイメント方法

1. 公式サイトからmysql-8.0.17-winx64をダウンロードし、Zipファイル形式を選択...

Linux trコマンドの使用

1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...

MySQL の悲観的ロックと楽観的ロックの理解と応用分析

この記事では、例を使用して MySQL の悲観的ロックと楽観的ロックについて説明します。ご参考までに...

CSS ポインターイベント属性の使用に関する詳細な説明

フロントエンド開発では、ユーザーと直接やり取りするため、ユーザーが操作がスムーズで快適だと感じ、ネイ...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

正の整数かどうかを判断するMYSQLカスタム関数の例コード

関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...

CentOS7で新しいデータディスクをマウントするための完全な手順

序文新しい VPS を購入しました。新しい VPS のデータ ディスクはデフォルトではシステムにマウ...