相关疑难解决方法(0)

如何在JavaScript中使用ISO 8601格式化带有时区偏移的日期?

目标:找到local timeUTC time offset以下列格式构建URL.

示例URL:/ Actions/Sleep?duration = 2002-10-10T12:00:00-05:00

格式基于W3C建议:http: //www.w3.org/TR/xmlschema11-2/#dateTime

文件说:

例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,中央夏令时以及美国东部标准时间)等于2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚5个小时.

所以基于我的理解,我需要通过新的Date()找到我的本地时间,然后使用getTimezoneOffset()函数来计算差异,然后将它附加到字符串的末尾.

1.以格式获取当地时间

var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
Run Code Online (Sandbox Code Playgroud)

产量

2013-07-02T09:00:00
Run Code Online (Sandbox Code Playgroud)

2.以小时为单位获取UTC时间偏移量

var offset = local.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)

产量

7
Run Code Online (Sandbox Code Playgroud)

3.Construct URL(仅限时间部分)

var duration = local + "-" + offset + ":00";
Run Code Online (Sandbox Code Playgroud)

输出:

2013-07-02T09:00:00-7:00
Run Code Online (Sandbox Code Playgroud)

以上输出结果表示我的当地时间是2013/07/02 9am,与UTC的差异是7小时(UTC是比当地时间早7小时)

到目前为止它似乎工作,但如果getTimezoneOffset()返回负值如-120怎么办?

我想知道在这种情况下格式应该是什么样的,因为我无法从W3C文档中找到答案.提前致谢.

javascript timezone date-formatting

90
推荐指数
7
解决办法
12万
查看次数

JavaScript:哪些浏览器支持使用Date.parse解析ISO-8601日期字符串

我没能在IE8和Safari 5上解析ISO-8601日期"2011-04-26T13:16:50Z",但它适用于Chrome 10,FF4.支持似乎很混杂?

有谁知道哪些浏览器可以解析这种格式的实际状态?我假设IE6,7也会失败.

var d = Date.parse("2011-04-26T13:16:50Z");
Run Code Online (Sandbox Code Playgroud)

javascript safari internet-explorer datetime

48
推荐指数
4
解决办法
4万
查看次数

将javascript转换为date对象为mysql日期格式(YYYY-MM-DD)

我正在尝试使用javascript将日期对象转换为有效的mysql日期 - 这样做的最佳方法是什么?

javascript mysql date

35
推荐指数
6
解决办法
7万
查看次数

为什么转换new.Date().toISOString()会改变时间?

我正在以两种不同的格式在数据库中插入日期.

这是作为Datetime插入

    var mydate;
    mydate = new Date();
    document.getElementById('clockinhour').value = mydate.toISOString().slice(0, 19).replace('T', ' ');
Run Code Online (Sandbox Code Playgroud)

输出A.

2017-06-21 20:14:31 
Run Code Online (Sandbox Code Playgroud)

这是作为varchar插入:

document.getElementById('clocked_in_time').value = Date();
Run Code Online (Sandbox Code Playgroud)

输出B.

Wed Jun 21 2017 16:14:31 GMT-0400 (Eastern Standard Time)
Run Code Online (Sandbox Code Playgroud)

输出B是正确的时间但我需要显示输出A.什么原因导致转换为ISOString时的时间变化?我怎样才能解决这个问题?

javascript date toisostring

12
推荐指数
2
解决办法
2万
查看次数

Javascript日期格式,如ISO但本地

如何格式化ISO格式的javascript日期,但在当地时间?

myDate.toISOString()我收到时间:"2012-09-13T19:12:23.826Z"

但是在这里,它是22:13,那么我如何在上面的格式中包含时区?


我最后做了......

pad=function(e,t,n){n=n||"0",t=t||2;while((""+e).length<t)e=n+e;return e}
c = new Date()
c.getFullYear()+"-"+pad(c.getMonth()+1)+"-"+pad(c.getDate()-5)+"T"+c.toLocaleTimeString().replace(/\D/g,':')+"."+pad(c.getMilliseconds(),3)
Run Code Online (Sandbox Code Playgroud)

javascript

10
推荐指数
5
解决办法
3516
查看次数

为什么 new Date().toISOString() 会丢失时区?

我不想使用像 momentjs 这样的任何外部库,我想自己创建一个格式化的日期字符串。我尝试使用new Date().toISOString(),但它正在丢失时区。

这:

new Date()
Run Code Online (Sandbox Code Playgroud)

给出:

Sat Jun 24 2017 09:32:10 GMT+0300 (RTZ 2 (winter))

和:

new Date().toISOString();
Run Code Online (Sandbox Code Playgroud)

给出:

2017-06-24T06:32:22.990Z

并且09:32:10是正确的时间,因此06:32:22丢失了时区信息。

除此之外,它看起来new Date().toLocaleString()几乎满足了我的需要。最后几个小时是正确的。结果:"24.06.2017, 11:37:05"

javascript date-formatting

8
推荐指数
1
解决办法
1万
查看次数

HTML5输入datetime-当前默认值和当前时间

无论如何,我可以将HTML5输入类型='datetime-local'的默认值设置为今天的日期和当前时间.

谢谢你

html5

7
推荐指数
4
解决办法
1万
查看次数

Date.toISOString(),但使用本地时间而不是UTC

假设我们有这个日期时间:

var d = new Date("Sat Jul 21 2018 14:00:00 GMT+0200");
Run Code Online (Sandbox Code Playgroud)

将其导出为字符串(console.log(d))会在浏览器之间产生不一致的结果:

  • Sat Jul 21 2018 14:00:00 GMT+0200 (Paris, Madrid (heure d’été)) 使用Chrome

  • Sat Jul 21 14:00:00 UTC+0200 2018 使用Internet Explorer等

因此我们不能将日期时间发送到格式不一致的服务器。

那么自然的想法是要求一个ISO8601日期时间,并使用d.toISOString();它,但它给出了UTC日期时间:2018-07-21T12:00:00.000Z而我想使用本地时区时间:

2018-07-21T14:00:00+0200
or
2018-07-21T14:00:00
Run Code Online (Sandbox Code Playgroud)

如何获得它(不依赖诸如momentjs之类的第三方依赖项)?

我尝试了一下,似乎可行,但是没有更自然的方法吗?

var d = new Date("Sat Jul 21 2018 14:00:00 GMT+0200");
Run Code Online (Sandbox Code Playgroud)

javascript timezone datetime date

7
推荐指数
2
解决办法
2981
查看次数