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

推薦する

Linux でリモートから MySQL を自動的にバックアップする方法

序文:基本的に、自社で使用する場合でも、顧客向けにサーバーを展開する場合でも、MySQL のバックア...

jQuery ステップ進行軸プラグインの実装コード

毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸ツール系のサイトでは入門チュートリア...

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

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

水平ヒストグラムを作成するための MySQL ソリューション

序文ヒストグラムは、RDBMS によって提供される基本的な統計情報です。最も一般的に使用されるのは、...

Vue でクラスとスタイルを使用して v-bind バインディングを使用するいくつかの方法

要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サ...

htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。

場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...

情報製品の読書リストのインタラクティブなデザインに関する考えと経験の共有

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

Vue プロジェクトの最初の画面のパフォーマンス最適化コンポーネントの実践ガイド

目次Vue ファースト スクリーン パフォーマンス最適化コンポーネント説明するインターセクションオブ...

Yahooが開発したウェブページスコアリングプラグインYSlowのスコアリングルール

YSlow は、Yahoo USA が開発したページ スコアリング プラグインです。非常に優れていま...

CSS 経由で JS にパラメータを渡す方法

1. CSSを通す必要がある背景CSS におけるメディアクエリの用途は、デバイスサイズの判別、マウス...

ウェブデザインで注意すべき検索最適化の知識

1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...

JavaScriptはマウスの動きに追従するボックスを実装します

この記事では、マウスの動きを追跡するためのJavaScriptの具体的なコードを参考までに紹介します...

Linux の chown コマンドと chmod コマンドの違いの詳細な説明

Linux システムでは、chmod コマンドと chown コマンドの両方を使用して権限を設定でき...

MySQLのインストール時に発生する可能性のある問題

質問1:インストール中に net start mysql と入力すると、次のエラー メッセージが表示...

重複したMySQLレコードを現場でチェックし、処理する実践的な記録

目次序文分析するデータ合計繰り返し率どこにあるかと持っているかの違い要約する序文私はソフトウェアの導...