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

推薦する

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

MySQL のメモリ使用量と CPU 使用率が高い場合のテストと解決策

変更後: innodb_buffer_pool_size=576M ->256M InnoDB...

Reactはグローバル箇条書きボックスメソッドをカプセル化します

この記事の例では、Reactカプセル化グローバルポップアップボックスの具体的なコードを参考までに共有...

Vue 学習 - VueRouter ルーティングの基礎

目次1. Vueルーター1. 説明2. 選択したルートのレンダリング: 3. 基本的な動作原理2. ...

TypeScript での関数オーバーロード

目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...

VueのVuexの4つの補助機能について

目次1. 補助機能2. 例1. mapState と mapGetters 2. mapMutati...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

ユーザーエクスペリエンスの概要

最近では、ソフトウェアやウェブサイトのいずれの作業であっても、設計時に「ユーザー エクスペリエンス」...

ブラウザ間の hr 区切り文字の違い

Webページを作るときに、区切り線hrを使うことがありますが、IE6やIE7で表示するのは非常に苦痛...

jsネイティブウォーターフォールフロープラグイン制作

この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...

Linux での NTP サーバー設定の詳細な手順

目次1. 環境設定1.NTPサーバー2. ビジネスサーバー2. NTPサーバーの設定1. chron...

node.js の require メソッドの読み込みルールの詳細な説明

require メソッドの読み込みルールキャッシュからの読み込みを優先するコアモジュールパス形式のモ...

HTML の大なり、小なり、スペース、引用符などでよく使用されるエスケープ コードのリスト。

表は以下のとおりです。 HTMLソースコード結果を表示説明する&lt; <未満記号また...

MySQL サーバー 5.5 の接続失敗の解決策

mysqlに接続できない問題の解決方法を参考までに紹介します。具体的な内容は以下のとおりです。昨日は...