teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

形式をそろえました

2019/05/21 13:16

投稿

love_kinniky
love_kinniky

スコア22

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,9 @@
1
+ ###実現したいこと
1
- 下記の``set_time``という関数で、指定したタイムゾーンのUTC時間で日時として出力したいですが、年のところがおかしくなってしまいます
2
+ 下記の``set_time( $utc, $ux_time )``という関数で、指定したタイムゾーンの日時出力したいです。
2
3
 
4
+ しかし下記コードでは、「49387080/05/23 05:27:40」というわけのわからない年になってしまうのですが、どのようにしたら正しく取得できるでしょうか?
3
5
 
6
+ ###試したこと
4
7
  たとえばアラスカのタイムゾーンなら「 -540 (-9:00)」だそうなので、``$utc``に``-540``を渡して計算しようという意図で書いてみました。
5
8
 
6
9
  ```PHP
@@ -9,20 +12,23 @@
9
12
 
10
13
  // 指定の国の日時に変換(2109/05/23 05:27:40の形式)
11
14
  function set_time( $utc, $ux_time ){
12
- $country_time = date( "Y/m/d H:i:s", ($ux_time*1000) + $utc);
15
+ $country_time = date( "Y/m/d H:i:s", ($ux_time*1000) + $utc); // タイムゾーンで日時を調整
13
16
  return $country_time;
14
17
  }
15
18
 
16
19
  // 確認
17
20
  echo set_time( -540, $ux_time );
18
21
  ```
19
- しかし上をすると、「49387080/05/23 05:27:40」というわけのわからない年になってしまうのですが、どのようにしたら正しく取得できるでしょうか?
20
22
 
21
- ---
22
23
 
24
+
25
+ ###補足
23
26
  ちなみに引数の``$utc``には、JSで下記を実行したときの結果を代入したい考えです。
24
27
  なのでアラスカは「-540」(-9:00)で、日本なら「540」(+9:00)になるだろうという考えです。
25
28
  ```js
26
29
  var offset = new Date().getTimezoneOffset();
27
30
  console.log(offset);
28
- ```
31
+ ```
32
+
33
+ ###前提
34
+ あくまで``set_time( $utc, $ux_time )``のようにして、引数として「タイムゾーンの時差」と「標準時間のミリ秒」を使いたいというのが前提になります。