Nyan's Activity Logs

行動ログ

アストルティア時刻について

今更なんだけど、アストルティアの昼夜がどう決まってるのか気になった。攻略サイトによると、こんな決まりになっているらしい。

0:00からの経過時間を求めればアストルティアの時刻に変換できそう。

// 現実の0:00のDateオブジェクトを作成
const jst0h = new Date();
jst0h.setHours(0);
jst0h.setMinutes(0);
jst0h.setSeconds(0);
jst0h.setMilliseconds(0);

// 現在時刻との差分をとって、0:00からの経過時間を取得
const diff = Date.now() - jst0h.getTime();

// ASTの時刻を求める。今日の0:00からの経過時間を20倍したDateオブジェクトを作成
const ast = new Date(jst0h.getTime() + diff * 20);

// フォーマットして出力
const pad = (n) => n.toString().padStart(2, '0');
const h = pad(ast.getHours());
const m = pad(ast.getMinutes());
const s = pad(ast.getSeconds());

console.log(`${h}時${m}分${s}秒`);

これで求められそうです