ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
JavaScript
0
どのような問題がありますか?

[Snippet] JavaScript、Node.js

これは何?

JavaScriptで「あれってどう書くんだっけ?」を集めたメモです。

時間系

Sleep

  • Return: [void]
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec))

UNIX timeを取得

  • Return: [number]: 1635204475862 (msec)
(new Date()).getTime()

文字列として時間を取得

  • Inputs:
    • TIMESTAMP_MSEC: [number]: 1635204475862
  • Return: [string]: "Tue Oct 26 2021 08:27:55 GMT+0900 (Japan Standard Time)"
new Date(1000 * TIMESTAMP_MSEC);

Timezoneを考慮した時間を取得

  • Return: [string]: "2021-10-26T08:01:57.241Z"
const getDateNow = () => {
  const date = new Date()
  return new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()
}

File操作系

ディレクトリ作成(再帰的)

  • Arguments:
    • DIR_NAME: [string]: "/home/hoge/download"
  • Return: [void]
const fs = require('fs-extra');
try {
  fs.mkdirSync(`${DIR_NAME}`, { recursive: true })
} catch(e) {
  console.error(e.message);
}

ファイル存在確認

  • Arguments:
    • FILE_NAME: [string]: "/home/hoge/download/test.txt"
  • Return: [Boolean]
const fs = require('fs-extra');
try {
  if (fs.existsSync(`${FILE_NAME}`)) {
    // アリ
  } else {
    // ナシ
  }
} catch(e) {
  console.error(e.message);
}

ファイルを書き出す

  • Arguments:
    • FILE_NAME: [string]: "/home/hoge/download/test.txt"
    • CONTENT_TEXT: [string]: "aaaa\nbbbb\ncccc"
  • Return: [Boolean]
const fs = require('fs-extra');
try {
  fs.writeFileSync(`${FILE_NAME}`, `${CONTENT_TEXT}`)
} catch(e) {
  console.error(e.message);
}

ファイルの属性取得

  • Arguments:
    • FILE_NAME: [string]: "/home/hoge/download/test.txt"
  • Return: [object]: class-fsstats
const fs = require('fs-extra');
try {
  const fileStat = fs.statSync(`${FILE_NAME}`)
} catch(e) {
  console.error(e.message);
}
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ryoyakawai

コメント

(編集済み)
リンクをコピー
このコメントを報告
(new Date()).getTime()

オブジェクト生成を伴わない静的メソッドのDate.now()のほうが軽量です。

new Date(1000 * TIMESTAMP_MSEC);

TIMESTAMP_MSEC / 1000の誤りでは?

const getDateNow = () => {
  const date = new Date()
  return new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()
}

getTimezoneOffset()はローカルタイムでの時差(分)を返すメソッドです。また、toJSON()で返されるISO8601形式のフォーマットの末尾のZは、UTCの意味です。
すなわち、時差の概念を持たないUTCの日時にローカルの時差を反映させてそのまま使用しているため、時差の分ずれた誤った日時を返していることになります。

0
どのような問題がありますか?
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure Kubernetes Serviceに関する記事を投稿しよう!
~
0
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
この機能を利用するにはログインする必要があります。ログインするとさらに便利にQiitaを利用できます。
この機能を利用するにはログインする必要があります。ログインするとさらに便利にQiitaを利用できます。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ストックするカテゴリー