将日期转换为长格式,它是如何工作的
Conversion of date into long format, How it works?
我试图将日期对象转换为长格式(可能是毫秒格式),就像我们在 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
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- 在JavaScript中的类中,push和concat的工作方式有何不同