Getting started
動作環境
ブラウザ、node、コマンドプロンプト、bashで使えます。
JavaScriptで始める
HTMLに導入するときは、CDNを使って始めることができます。
以下の <scirpt> を <head> 内側に入れてください。
<!-- Modern版:軽量ですが、モダンブラウザでだけ動作します -->
<script src="https://cdn.jsdelivr.net/gh/ShotaOki/NLPDate@v0.0.1/modern/nlpdate-main.min.js"></script>
<!-- ES2015版:モダンブラウザ+IE11で動作させる場合は、こちらを利用してください。 -->
<script src="https://cdn.jsdelivr.net/gh/ShotaOki/NLPDate@v0.0.1/es2015/nlpdate-main.min.js"></script>
Nodeで始める
Node で使う場合は、Cloneしたあと、たとえば次のように書いてください。
const NLPDate = import(
"${Cloneしたフォルダのルート}/modern/nlpdate-main.min.js"
);
コマンドプロンプト、bashで始める
node がインストールされた環境であれば、bash や Windowsのコマンドプロンプトでも使えます。
github のソースを Clone した後、取り込んだプロジェクトのルートにある binまでのパスを通してください。
例:MyName さんのデスクトップに、NLPDate のフォルダ名で cloneした場合
環境変数に登録する:C:\Users\MyName\Desktop\NLPDate\bin
Constructor
コンストラクタ
自然な日本語を渡すことで、思い通りの日時を作成します。
// 今日の日時
let today = NLPDate("今日");
// 昨日の日時
let yesterday = NLPDate("昨日");
// 3日後の日時
let three_days_later = NLPDate("3日後");
// 特定の日時
let any_day = NLPDate("昭和40年4月10日");
// 相対日時
let any_day = NLPDate("次の土曜日の4日後");
コンストラクタに渡せるデータ
日時文字列のほかにも、以下のものが指定できます。
指定 |
型 |
引数の例 |
処理結果 |
日時を指定 |
string 型 |
明日の4時20分 |
テキストが指す日時を作成します。 |
エポック秒、エポックミリ秒を指定 |
string 型 |
1610975612 |
エポック秒が指す日時を作成します。 |
年月日を指定 |
string 型 |
19901230 |
年月日が指す日時を作成します。 |
記号の日時を指定 |
string 型 |
1990/12/30 |
年月日が指す日時を作成します。 |
数字を指定 |
number 型 |
19901230 |
桁数がエポック秒の桁数であればエポックとして、年月日であれば年月日として解析して作成します。 |
API
結果をキャストする
作成した日時を、JavaScriptのどの型で、どのフォーマットで受け取るのかを呼び出します。
// 結果を文字列で取得します。1989年04月10日 14時20分00秒になります。
let date_object = NLPDate("平成元年4月10日の14時20分").asString("日本語の年月日時分秒");
// 結果を文字列で取得します。1989年04月10日になります。
let date_object_day = NLPDate("平成元年4月10日の14時20分").asString("日本語の年月日");
// 結果を文字列で取得します。1989/04/10になります。
let date_object_sla = NLPDate("平成元年4月10日の14時20分").asString("スラッシュ区切りの年月日");
変換メソッド
変換メソッドは、asString を含めて 3 つあります。
メソッド |
正常時 戻り値 |
エラー時 戻り値 |
引数 |
出力内容 |
asString |
string 型 |
undefined |
フォーマット文字列 |
日時を文字列として出力します |
asNumber |
number 型 |
number (エポックミリ秒) |
asString に同じ |
日時を数値として出力します |
asDate |
Date 型 |
undefined |
なし |
日時を Date 型として出力します |
Optoin
オプションを設定する
コンストラクタにオプションをつけて、タイムゾーンやパースのタイミングを設定することができます。
const UTC = {
time_zone: "UTC", // 日本時間はAsia/Tokyoになる
mode: "dynamic" // 現在日時の評価を変換APIの実行時点に行う
}
// UTC時間の今日を取得します。
let date_object = NLPDate("今日", UTC);
設定できるオプション
キー |
値 |
初期値 |
内容 |
time_zone |
Asia/Tokyo |
タイムゾーンのロケール |
時差を設定します。 |
mode |
dynamic |
static |
dynamicを指定すると、変換APIを実行したタイミングで時間を評価します。 |
mode |
static |
static |
staticを指定すると、コンストラクタを実行したタイミングで時間を評価します。 |
epoch_time_milliseconds |
エポックミリ秒 |
None |
設定すると、現在日時の時間を強制的に固定します。 ※値のコピー、単体試験で使います。 |
How to, get date
今日の時間を取る
「今日」と書くと日付だけが設定され、「現在」と書くと日付と時間が設定されます。
// 「今日」と書くと、今日の00:00:00が取得できます
let date_object = NLPDate("今日");
// 「現在」と書くと、今日の現在時刻が取得できます
let now_object = NLPDate("現在");
「今日」や「現在」の別名でも認識します。
// 「現在」ではなく「今」や「今頃」や「いま」のような別名を書いても取得できます
let date_object = NLPDate("今");
日時の精度
「今日の30分後」のような指定をしても動作しません。
今日の30分後=今日のいつごろの30分後なのかが分からないためです。
// 「現在」の30分後は、実行時の30分後の時間が取れます
let now_object = NLPDate("現在の30分後");
// 「今日」の30分後と書いた場合、「30分後」は無視されます
let date_object = NLPDate("今日の30分後");
時間を設定すれば、何分後、何秒後、何時間後の設定ができるようになります。
// 「今日の10時00分 の30分後」と書くと、今日の10時30分が設定されます。
let ten_object = NLPDate("今日の10時00分の30分後");
// 「~の今頃」と書いて、現在時刻を設定しても大丈夫です
let ten_object = NLPDate("明日の今頃の30分後");