将日期转换为长格式,它是如何工作的

Conversion of date into long format, How it works?

本文关键字:何工作 工作 转换 日期 格式      更新时间:2023-09-26

我试图将日期对象转换为长格式(可能是毫秒格式),就像我们在 java 中所做的那样。
因此,为了满足我的需求,经过一些尝试和错误,我找到了以下适合我的方法:

var date = new Date();  
var longFormat = date*1;  // dont know what it does internally
console.log(longFormat); // output was 1380625095292  

为了验证,我使用 new Date(longFormat); 反转它,它给了我正确的输出。简而言之,我能够以某种方式满足我的需求,但我仍然是空白的乘法内部的作用?当我尝试将当前日期与数字 2 相乘时,它给了我 2057 年的某个日期!有谁知道,到底发生了什么?

长格式显示 01.01.1970 之后的刻度数,因此目前约为 43 年。

*运算符强制将参数转换为数字,我想,Date对象具有这样的转换可能带有getTime()

把毫秒数加倍——你再得到 43 年,因此是 2057(左右)年。

当你乘以时,你得到的是刻度

访问:如何将 JavaScript 日期对象转换为刻度

此外,当您* 2它时,您将获得即时报价的双倍值,因此日期是未来的日期

var date = new Date()
var ticks = date.getTime()

参考: Javascript Date Ticks

getTime 返回自 1970 年 1 月 1 日以来的毫秒数。因此,当您* 1它时,您可能会获得此毫秒的值。当你* 2它时,这些毫秒会加倍,你会得到 2057 年的日期!!

Javascript 日期对象基于 UTC 时间值,该值自 1970 年 1 月 1 日以来为毫秒。碰巧Java使用相同的纪元,但时间值是秒。

要获取时间值,可以使用 getTime 方法,或者可以将数学运算应用于日期对象,例如

var d = new Date();
alert(d.getTime());  // shows time value
alert(+d);           // shows time value

Date 构造函数还接受时间值作为创建日期对象的参数,因此要复制日期对象,您可以执行以下操作:

var d2 = new Date(+d);

如果您这样做:

var d3 = new Date(2 * d);

您正在有效地创建一个日期(非常粗略):

1970 + (2013 - 1970) * 2 = 2056
日期在

内部存储为时间戳,时间戳是一个长对象(有关时间戳的更多信息)。这就是为什么您可以使用新的日期(长)创建日期的原因。如果您尝试将 Date 与整数相乘,则会发生以下情况:

    var date = new Date();
    var longFormat = date*1;
    // date*1 => date.getTime() * 1
    console.log(longFormat); // output is 1380.....

Javascript 试图找到从日期到可以乘以因子 1 的格式的最简单转换,在这种情况下是内部长格式

只需使用日期对象方法。

阅读文档:JavaScript Date 对象

var miliseconds=yourDateObject.getMiliseconds();

如果您想获得即时报价:

var ticks = ((yourDateObject.getTime() * 10000) + 621355968000000000);

var ticks = someDate.getTime();

您可以尝试 Date 构造函数的分析功能,然后您可以字符串化其结果:

>

 new Date("04/06/13").toString()
"Sun Apr 06 1913 00:00:00 GMT+0200"

//什么的但是解析取决于实现,并且不会有很多引擎可以正确解释奇怪的 DD/MM/YY 格式。如果您使用月/日/年,它可能会在任何地方被识别。

相反,您希望确保它的解析方式,因此必须自己完成并将单个部分馈送到构造函数中:

var parts = "04/06/13".split("/"),
    date = new Date(+parts[2]+2000, parts[1]-1, +parts[0]);
console.log(date.toString()); // Tue Jun 04 2013 00:00:00 GMT+0200