回答編集履歴

1

追記を受けての追記

2018/08/13 19:05

投稿

tanat
tanat

スコア18713

test CHANGED
@@ -33,3 +33,43 @@
33
33
 
34
34
 
35
35
  というのがuniximeの定義への誤解に基づく仕様な気がするので、最終的にどういうことをしたいのかを追記されると良いと思います。
36
+
37
+
38
+
39
+
40
+
41
+ ---
42
+
43
+ 追記に対する回答
44
+
45
+ > 日付文字列とtimezoneを現した数値があります(Asia/Tokyoなら+9、America/Pacificなら-8)。
46
+
47
+ > 他から受け取ったunixtimeの値と比較して、片方より未来か過去かを判定しようとしています。
48
+
49
+ > 同じ形式で出力してそれを比較すれば良いと思い、
50
+
51
+ > 日付文字列とtimezone の値をunixtimeへ変換しようとしたのですが…
52
+
53
+
54
+
55
+ この発想は正しいので、(2)の方法でそれぞれDateTimeオブジェクトを作ってunixtimeで比較するか、
56
+
57
+ [オブジェクトをそのまま比較](https://qiita.com/Hiraku/items/50b09e815cdcfd9fbafd)(こんなことできるんですね)すればどちらが未来かわかりますね。
58
+
59
+
60
+
61
+ (2)の場合、
62
+
63
+ string(23) "2018-08-13 00:00:00 UTC"
64
+
65
+ string(10) "1534118400"
66
+
67
+
68
+
69
+ string(30) "2018-08-13 00:00:00 Asia/Tokyo"
70
+
71
+ string(10) "1534086000"
72
+
73
+ だと、UTCの方が値が大きい(1970/1/1からの経過秒数が多い)ので同じ時間でUTCとJSTだとUTCの方が未来(日本よりロンドンの方が日付変更が遅い)である
74
+
75
+ と判定できます。