2016-08-27 4 views
2

に私はUnixタイムスタンプ文字列に日付/時刻文字列を変換しようとしています:PHP換算)GO

<?php 
    echo strtotime("20140921040000"); 
?> 
Output: 1411286400 //timestamp 

はGO LANGで同じことを行うが、望ましい結果を得ていません。 囲碁コードの下にある:あなたの最後の行で

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    tm := time.Unix(1411286400, 0) 
    fmt.Println(tm) //output: 2014-09-21 08:00:00 +0000 UTC 

    //================ 
    layout := "20060102150405" 
    str := "20140921040000" 
    t, err := time.Parse(layout, str) 
    if err != nil { 
     fmt.Println(err) 
    } 
    fmt.Println(t) // output: 2014-09-21 04:00:00 +0000 UTC 
} 

答えて

3

行います

fmt.Println(t.Unix()) 

あなたはこのPHPコードとそれを比較することができます:http://sandbox.onlinephpfunctions.com/code/b520953ea26e2d84ed85db6f5657ceeccade08d4

+0

しかし、それは(PHPののstrtotimeと同じではありません) 。両方の出力が異なります。そして、PHP関数の出力は正しいです。 – Daisy

+1

実際、あなたのPHPはおそらくサーバーロケールを使用しているので間違っています。上記のPHPコード例を参照してください。 –

+0

@Daisy確かに、[documentation](http://php.net/strtotime)から: 'この関数の各パラメータは、そのパラメータにタイムゾーンが指定されていない限り、デフォルトのタイムゾーンを使用します。それが意図されていない限り、各パラメータで異なるタイムゾーンを使用しないように注意してください。 – Carpetsmoker