LoginSignup
0

More than 5 years have passed since last update.

URLのディレクトリ名を取得する書き方(年月日を取得)

Last updated at Posted at 2017-12-27

URLで年月日のディレクトリから年と月と日を取得する書き方になります。
※月と日が0埋めの場合、1桁に変換する。

作業内容

  • URLは「https://hoge.com/fuga/2018-01-10/」
  • ディレクトリ「2018-01-10」を取得
  • 「2018、1、10」と年、月、日ごとに値を取得

コード

Classで書きました。

Class/UrlGetDirectory.js
// https://hoge.com/fuga/2018-01-10/の場合

export default class UrlGetDirectory {
  constructor() {
    const urlGetDirectory = location.href.split('/'); // URLを取得
    this.urlGetDate = urlGetDirectory[4];                         // 「/」で分けた4つ目のディレクトリ名を取得
  }
  /**
   * URLディレクトリの年月日を取得
   * @return {object} 年、月、日の値
   */
  makeDate() {
    const urlGetYear = this.urlGetDate.substr(0, 4); // 日付の年数を取得
    let urlGetMonth = this.urlGetDate.substr(5, 2);
    urlGetMonth = this.isFrontZero(urlGetMonth);        // 日付の月を取得して先頭が「0」だったら削除 例: 01 -> 1
    let urlGetDay = this.urlGetDate.substr(8, 2);
    urlGetDay = this.isFrontZero(urlGetDay);               // 日付の日を取得して先頭が「0」だったら削除 例: 01 -> 1
    return {
      year: urlGetYear,
      month: urlGetMonth,
      day: urlGetDay,
    }
  }
  /**
   * URLのディレクトリ名で取得した月と日の先頭に「0」が付いてる場合は削除
   * @param  {string}  num ディレクトリで取得した月と日
   * @return {string}  先頭に「0」がある場合は「0」を削除。「0」がない場合はそのまま変更せずに返す
   */
  isFrontZero(num) {
    const isFrontZero = num.substr(0, 1);
    if (isFrontZero === '0') {
      const frontZeroRemove = num.slice(1);
      return frontZeroRemove;
    }
    return num;
  }
}
entry.js
import UrlGetDirectory from './Class/UrlGetDirectory';
const urlGetDirectory = new UrlGetDirectory();
console.log(urlGetDirectory.makeDate().year);   // 2018
console.log(urlGetDirectory.makeDate().month);  // 1
console.log(urlGetDirectory.makeDate().day);    // 10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0