[Unix/Linux & javascript] Unix/Linuxの日付を修正するdateコマンドをjsで生成するTips「コピペOK」

時計の設定 徒然草2.0
時計の設定

追記)2021/2/1以降…chromeだと時間がおかしくなるようです…マシン依存/ブラウザ依存の時間はあてにならないということが分かった。参考URL:Chromeアップデート後に時刻/タイムゾーンがおかしい、18時間ずれる等の不具合発生中(2021年2月4日更新) なので、以下はあまりあてになりません…。

日付を変更するdateコマンド(UTC版?)


日付を変更するdateコマンド(JTC版?)


 

※上のコマンドを、Unix/Linuxで実行することで、日付を合わせることができます。(VM開発環境の時間があっておらず、ntpdateコマンドが無い環境で再設定をするというシーンを想定し、「とりあえず手動で直す」コマンド・チップスです)

javascriptのコード

※以下はJavaScriptのコードです↓(ご参考まで)

【UTC版?】

<script>
window.addEventListener('load', function() {
  var d = new Date();
  var year = d.getFullYear();
  var month = d.getMonth()+1;
  var day = d.getDate();
  var hour = d.getHours();
  var minute = d.getMinutes();
  var second = d.getSeconds();
  var cmd = "sudo date -s '" + year + "/" + month + "/" + day + " ";
  cmd = cmd + hour + ":" + minute + ":" + second + "'";
  document.getElementById("todatext1").innerHTML = cmd;
});
</script>
<span id="todatext1" style="font-size: 36px; color: white; background-color: black; padding: 24px;"></span>

【JTC版?】

<script>
window.addEventListener('load', function() {
  var d = new Date();
  d.setHours(d.getHours() + 9);
  var year = d.getFullYear();
  var month = d.getMonth()+1;
  var day = d.getDate();
  var hour = d.getHours();
  var minute = d.getMinutes();
  var second = d.getSeconds();
  var cmd = "sudo date -s '" + year + "/" + month + "/" + day + " ";
  cmd = cmd + hour + ":" + minute + ":" + second + "'";
  document.getElementById("todatext2").innerHTML = cmd;
});
</script>
<span id="todatext2" style="font-size: 36px; color: white; background-color: black; padding: 24px;"></span>

※メイン環境の時間を取得しています。
※互換性を考慮してES6に対応をしておりません(言い訳)
※NICの設定が済んでインターネットにアクセスできる場合はntpで取得すべきです。

 

参考にしたサイト

 

正攻法はntpで取得する

sudo ntpdate -v ntp.nict.jp

なお、VMゲスト環境がネットに繋がっている場合は、上のコマンドでntpサーバから時刻を取得することができます。

‘t’で起動できるようにする

ファイル名:/usr/bin/t

#!/bin/sh -v
sudo ntpdate -v ntp.nict.jp

別にtじゃなくてもいいのですがシェルスクリプトを定義し、
tコマンドを叩けば手動で時刻合わせができます。

徒然草2.0
スポンサーリンク
シェアする
gomiryoをフォローする
ごみぶろぐ

コメント

タイトルとURLをコピーしました