相关疑难解决方法(0)

在Javascript中创建UTC时间戳

我正在尝试从我的javascript客户端发送UTC时间戳到休息服务.我无法像"2013-08-30T19:52:28.226Z"使用javascript 那样创建时间戳.

var rawDate = date.getUTCDate().toString();
Run Code Online (Sandbox Code Playgroud)

我看到这个例子但对我没有帮助.UTC-时间stame的JavaScript

javascript

6
推荐指数
1
解决办法
8491
查看次数

Javascript 中的 Date.now 和 Date.getTime 有什么区别以及时区如何影响它们?

我试图了解当客户端和服务器的时区可能不同时,在客户端和服务器上使用 Javascript 创建日期如何影响查询结果。

在客户端,我Date.now()用来保存时间戳信息

var time = Date.now()
console.log(time);
Run Code Online (Sandbox Code Playgroud)

now() 方法以数字形式返回自 1970 年 1 月 1 日 00:00:00 UTC 到现在经过的毫秒数。

我的理解是,这个时间戳与任何时区偏移无关,换句话说,它指向零时区偏移的时间。这是正确的吗?.

我们还可以使用以下代码获取此时间戳

var now = new Date();
time = now.getTime();
console.log(time);
Run Code Online (Sandbox Code Playgroud)

此代码仍然提供相同的时间戳信息(零时区偏移)。Date.now() 只是获取时间戳的快速方法吗?

现在,从Date.now()浏览器的控制台构建日期并将其显示出来。

var time = Date.now()
console.log(time);

var date = new Date(time)
var time = date.getTime()
console.log(time);

console.log(date);
Run Code Online (Sandbox Code Playgroud)

在我看来,只有在浏览器的控制台中显示时,日期才会在浏览器的本地时区中格式化,否则此日期实例仍将时间戳记为零时区偏移量。这是正确的吗?.

我还看到了将 Javascript 日期转换为 UTC的答案

var now = new Date();
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), …
Run Code Online (Sandbox Code Playgroud)

javascript datetime date

6
推荐指数
1
解决办法
7305
查看次数

Web应用程序中的时区敏感日期和时间显示?

我正在寻找在用户当前时区以外的时区中在Web应用程序中显示时间的建议.

我们将日期/时间以UTC/GMT格式存储在数据库中,因此格式化UTC/GMT时间或用户当前时区不是问题.但是,在其他情况下,我们需要从任意时区的角度显示时间(即此页面上的每个日期/时间都在东部,无论用户是否在西海岸,中部,东部,等等.).

在过去,我们已经存储了偏移量或时区信息,然后在.Net中的服务器代码中进行了计算,或者我们已经在javascript中做了一些我希望避免的客户端操作,因为它们都变得非常依赖于javascript和用户的浏览器.我想知道在更客户端/ MVC类型的应用程序中执行此操作的最佳方法.

这是一个例子:

  1. 日期存储在db:1302790667(星期四,2011年4月14日14:17:47 GMT)
  2. 在中部时区显示的客户转换日期:2011年4月14日星期四09:17:47
  3. 我实际想要显示的日期,总是在东部时区:2011年4月14日星期四10:17:47

在上面的示例中,很容易获得UTC(#1)或用户当前时区(#2)的时间,但获得#3更加困难.我的选择似乎是:

  1. 在数据库中存储偏移量或时区并在客户端上进行计算 - 这是我们过去用.Net所做的事情,但在客户端代码中看起来更加混乱是我们目前试图避免的路径.
  2. 在服务器上进行转换并向客户端发送完整日期以显示 - 客户端收到一个字符串("Thu Apr 14 10:17:47 2011").这有效,但不是很灵活.
  3. 在服务器上进行转换,将其分解为部分并将其发送到客户端,然后将它们重新组合在一起.("{DayOfWeek:Thu,Month:Apr,Day:14,Hour:10,Minute:17}").这为我们提供了正确的数据,并为我们格式化日期提供了更大的灵活性,但对于这种情况感觉有点不对劲.

还有其他选择吗?其他人如何处理类似情况?谢谢.

.net javascript asp.net asp.net-mvc datetime

5
推荐指数
1
解决办法
823
查看次数

new Date() 返回相对时间而不是 UTC 时间

当我转到浏览器开发工具并在控制台中编写 new Date() 时,它会给出以下内容

Mon Dec 18 2017 17:11:29 GMT+0200
Run Code Online (Sandbox Code Playgroud)

我认为它应该返回 UTC 时间。

问题是我在 AWS 上有一台服务器,它将 UTC 时间写入数据库。它将它写为字符串,在客户端我执行以下操作

const updatedMilliAgo = new Date() - new Date(timeStrFromDb);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,差异甚至是两个小时,因为我在写入服务器后立即检查它。

我在这里做错了什么?

javascript timezone timezone-offset

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

bootstrap-datetimepicker将选定的本地日期转换为UTC

我使用来自http://tarruda.github.io/bootstrap-datetimepicker/的 bootstrap-datetimepicker 这给出了选择当地时间的日期时间的选项,我无法理解的是如何在将它发送到cgi之前将其转换为UTC .我需要这样做,因为我的服务器设置为GMT时区,输入可以来自任何时区.
所以我希望用户在他的tz中选择时间,但将该选择转换为gmt,将其发送到我的cgi脚本.
如果有任何其他更好的方法来解决这个问题,我也会很感激.

<script type="text/javascript">
    $('#timetime').datetimepicker({
        maskInput: true,
        format: 'yyyy-MM-dd hh:mm',
    });
</script>
Run Code Online (Sandbox Code Playgroud)

它是在下面的代码中的表单中调用的

<label for="sdate" class="control-label">* Scheduled Date (UTC/GMT)</label>
<div id="timetime" class="controls">
    <input id="sdate" name="sdate" type="text" placeholder="YYYY-MM-DD HH:MM"></input>
    <span class="add-on">
        <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

最终答案基于电影提供者的帮助

<script type="text/javascript">
            $('#timetime').datetimepicker({
                            maskInput: true,
                          format: 'yyyy-MM-dd hh:mm',
                          });

$("form").submit(function(){
   // Let's find the input to check
   var $input = $(this).find("input[name=sdate]");
   if ($input.val()) {
  // Value is falsey (i.e. null), lets set a new one, i have inversed this, …
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何在NodeJS中获取UTC日期对象?

我想获取UTC中的Current Date对象,然后使用Mongoose将其存储。

我尝试使用new Date()Date.now()等等。但是所有这些都返回本地时间。如何获取UTC日期对象?

我想要Date对象,而不是字符串表示形式。

javascript datetime utc node.js

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

如何在Javascript中检查日期是否为UTC?

我已经读过这个问题: 你如何将JavaScript日期转换为UTC?

基于此,我在dateTools模块中实现了这个转换,如下所示:

[更新]

var dt, utcTime;
dt = new Date();
utcTime = new Date(Date.UTC(dt.getFullYear(), 
                                        dt.getMonth(), 
                                        dt.getDate(), 
                                        dt.getHours(), 
                                        dt.getMinutes(), 
                                        dt.getSeconds(), 
                                        dt.getMilliseconds()));
Run Code Online (Sandbox Code Playgroud)

现在我想写单元测试.我的想法是检查结果是否实际上是UTC,但我不知道如何.

对于输入(非UTC)和输出(UTC)日期,所有toString,toUTCString和类似方法似乎都是相同的.

只有getTime方法的结果不同.

有没有办法检查javascript中的日期是UTC?如果没有,是否有更好的想法进行单元测试?

提供更多背景信息:

只将它转换为UTC字符串没有用,因为在下一步中,日期将被发送到Asp.net服务,因此转换为如下字符串:

'/Date([time])/'
Run Code Online (Sandbox Code Playgroud)

用这个代码

var aspDate = '/Date(' + date.getTime() + ')/';
Run Code Online (Sandbox Code Playgroud)

javascript datetime

2
推荐指数
1
解决办法
9458
查看次数

将日期和时间转换为 UTC

我要求用户在我的应用程序中输入日期和时间。用户将根据他们所在的时区输入时间。当我将此日期和时间保存到数据库时,我想将时间转换为 UTC,这样当我按时间查询(以 UTC 完成)时,我可以找到条目。

这就是我目前所做的:

var date = new Date();
var dateString = "0" + (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear() + " " + time;
//format date
date = moment(dateString, "MM/DD/YYYY HH:mm a");
date = new Date(date).toISOString();
Run Code Online (Sandbox Code Playgroud)

其中 time 是用户输入的时间(例如,如果我想在上午 11:00 安排某项活动,则时间 = 11:00am)

当它保存到数据库时,它看起来像 : ISODate("2016-05-09T11:00:00Z")这是不正确的,因为这是保存为祖鲁时间的 EST。

如何将时间(我正在使用时刻)转换为正确的祖鲁时间?

javascript datetime datetime-format momentjs

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