Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使go Time与js Date兼容_Javascript_Google App Engine_Go_Google Cloud Endpoints - Fatal编程技术网

Javascript 如何使go Time与js Date兼容

Javascript 如何使go Time与js Date兼容,javascript,google-app-engine,go,google-cloud-endpoints,Javascript,Google App Engine,Go,Google Cloud Endpoints,当我在js中这样定义时间时 {expiry:new Date()} 并像这样在go端点中创建一个结构 {Expiry time.Time `json:"expiry"`} 我从go得到一个解析错误 "parsing time \"\"2006-01-02T15:04:05Z07:00\"\" as \"\"2006-01-02T15:04:05Z07:00\"\": cannot parse \"07:00\"\" as \"\"\"" 有什么建议吗?time.UnmarshalJSON的

当我在js中这样定义时间时

{expiry:new Date()}
并像这样在go端点中创建一个结构

{Expiry time.Time `json:"expiry"`}
我从go得到一个解析错误

"parsing time \"\"2006-01-02T15:04:05Z07:00\"\" as \"\"2006-01-02T15:04:05Z07:00\"\": cannot parse \"07:00\"\" as \"\"\""

有什么建议吗?

time.UnmarshalJSON的文档说明:

UnmarshalJSON实现json.Unmarshaler接口。时间应为RFC 3339格式的带引号字符串

存在一个问题,即所有浏览器不一定将
DateTime
对象编码为RFC3339格式。然而,您的错误消息似乎并不暗示这一点。您似乎试图对以下JSON字符串进行编码:

"2006-01-02T15:04:05Z07:00"
这不是时间戳,而是
time
包的参考布局。请参见此示例,该示例显示Go如何期望时间戳:

但是,浏览器不一致性仍然存在这个问题。为了避免这种情况,您可以使用函数或库,正如@elithrar所建议的:

var a = {expiry: moment(new Date()).format("YYYY-MM-DDTHH:mm:ssZ")};
console.log(a);
输出:

{"expiry": "2014-01-08T08:54:44+01:00"} 

time.UnmarshalJSON的文档说明:

UnmarshalJSON实现json.Unmarshaler接口。时间应为RFC 3339格式的带引号字符串

存在一个问题,即所有浏览器不一定将
DateTime
对象编码为RFC3339格式。然而,您的错误消息似乎并不暗示这一点。您似乎试图对以下JSON字符串进行编码:

"2006-01-02T15:04:05Z07:00"
这不是时间戳,而是
time
包的参考布局。请参见此示例,该示例显示Go如何期望时间戳:

但是,浏览器不一致性仍然存在这个问题。为了避免这种情况,您可以使用函数或库,正如@elithrar所建议的:

var a = {expiry: moment(new Date()).format("YYYY-MM-DDTHH:mm:ssZ")};
console.log(a);
输出:

{"expiry": "2014-01-08T08:54:44+01:00"} 

我认为这个答案会帮助你:好的,这将是一个go解决方案,那么js解决方案如何重新格式化时间字符串,以便端点接受?我认为这个答案会帮助你:好的,这将是一个go解决方案,那么js解决方案如何重新格式化时间字符串以便端点接受呢?为什么google chrome决定做一些与RFC3339不同的事情?(新日期()).toJSON();同一家公司,他们仍然不能告诉对方时间:)@GertCuykens Chrome实际上对我来说很好<代码>(新日期()).toJSON()返回RFC3339后面的
“2014-01-08T15:31:18.683Z”
<代码>Z可以。这是无效的
Z07:00
。嗯,我在07:00的代码中到底在哪里?哈哈:)谢谢你能把这个添加到你的答案中吗
{expiry:new Date().toJSON()}
对我也有效
{expiry:new Date()}
,谷歌浏览器为什么决定做一些与RFC3339不同的事情?(新日期()).toJSON();同一家公司,他们仍然不能告诉对方时间:)@GertCuykens Chrome实际上对我来说很好<代码>(新日期()).toJSON()返回RFC3339后面的
“2014-01-08T15:31:18.683Z”
<代码>Z可以。这是无效的
Z07:00
。嗯,我在07:00的代码中到底做了什么,哈哈:)谢谢你能把这个添加到你的答案中吗
{expiry:new Date().toJSON()}
对我也有效
{expiry:new Date()}