草庐IT

date-math

全部标签

Javascript - 你能重用 Date() 对象吗?

是否可以创建一个新的Date()对象来获取当前日期,然后在一段时间后,重用同一个Date()对象来获取新的当前时间?看来每次需要当前日期/时间时都必须创建一个新的Date对象。在我的特定应用程序中,我想要运行一个动画,并且我需要为动画的每一帧获取当前时间。因此,每一帧(可能是1000帧?)创建一个新的Date对象只会随着时间的推移增加内存使用量。有什么线索吗? 最佳答案 除非您单独存储它们,否则您的日期对象会自动被垃圾回收。此外,您可以在每次迭代时将当前日期存储到同一个变量中,而不必担心内存溢出。例如:varcurrent=newD

javascript - Math.round 舍入误差

我想将1.006舍入到两位小数,期望输出为1.01当我做varnum=1.006;alert(Math.round(num,2));//Outputs1alert(num.toFixed(2));//Output1.01同样,varnum=1.106;alert(Math.round(num,2));//Outputs1alert(num.toFixed(2));;//Outputs1.11所以每次都使用toFixed()是否安全?toFixed()是否跨浏览器投诉?请给我建议。P.S:我尝试在堆栈溢出中搜索类似的答案,但找不到正确的答案。编辑:为什么1.015返回1.01而1.045

javascript - 为什么 new Date(1970, 0 ,1).getFullYear() 返回 1969?

有人可以解释为什么newDate(1970,0,1).getFullYear()返回1969而不是1970吗?result.textContent=newDate(1970,0,1).getFullYear();归档的Firefox错误:https://bugzilla.mozilla.org/show_bug.cgi?id=1093130 最佳答案 看起来很像Firefox的SpiderMonkey引擎中的时区错误(很可能在它使用的某些库中);在我的实验中,它只影响*nix操作系统,不影响Windows。(请参阅下文了解时区的原因

javascript - FireFox 是否支持 Date.prototype.toLocaleString() 中的 IANA 时区?

在执行以下代码时,我在FireFox38.0.1(在撰写本文时全新安装了最新版本)中遇到了一个令人惊讶的异常:vard=newDate()varformattingOptions={timeZone:'America/New_York',month:'2-digit',day:'2-digit',year:'numeric',hour:'numeric',minute:'numeric',second:'numeric'};varformattedDate=d.toLocaleString('en-US',formattingOptions);显然,FireFox不喜欢我对format

javascript - 使用 ISO-8601 格式的 date-fns 获取当前日期

我想使用date-fns库获取当天最后一小时:分钟:秒的ISO-8601格式:我正在使用:endOfDay(newDate());2018年9月14日星期五23:59:59GMT-0300所以添加toISOString()得到ISO格式:endOfDay(newDate()).toISOString()结果:2018-09-15T02:59:59.999Z当我需要时:2018-09-14T23:59:59.999Z 最佳答案 2018-09-14T23:59:59.999Z不是endOfDay(newDate());计算的一天结束时

javascript - Math.floor(Math.random() * 5 + 1)的概念,真实范围是多少,为什么?

通过将随机数(介于0和1之间)乘以5,我们使其成为介于0和5之间的随机数(例如,3.1841)。Math.floor()将该数字向下舍入为整数,并在末尾添加1将范围从0到4更改为1到5(最多并包括5)。上面的解释让我很困惑……我的解释如下:--加上5得到5个数字的范围--但它以0开头(像数组?)--所以它在技术上是0-4--加上一个,就变成了1-5我是JS的新手,甚至不知道这种问题在这里是否合适,但这个网站到目前为止一直很棒。感谢您的帮助! 最佳答案 来自MozillaDeveloperNetworks'documentation在

javascript - Date.parse(0) 返回 2000 年午夜,为什么?

当我尝试Date.parse()一个整数或字符串0时,它返回946681200000,转换为以下日期:2000年1月1日星期六00:00:00GMT+0100(CET)为什么?我会假设解析器将单个零解释为2000年,但规范没有说明单字符年份定义-RFC2822和ISO8601要求字符串中包含四个字符的年份。我想更好地理解字符串“0”是如何被解析为一个日期的,为什么它被接受为一个有效的日期(它不应该是NaN或类似的吗?)以及为什么选择2000年而不是例如1900年。更新经过反复试验,我发现单个数字实际上在不同的数字范围内有不同的解释。0-12:2000年的一个月13-31:NaN32-4

javascript date - 保留时区偏移量

我有一个包含时区偏移量的ISO8601日期(见下文)。当我由此创建日期对象时,日期对象被转换为我的时区(当前为格林威治标准时间),时区偏移量变为0。有什么方法可以让Date()构造函数保留时区偏移量?vardate=newDate("2012-01-17T12:55:00.000+01:00");console.log(date.toString());我得到的输出是:"TueJan17201211:55:00GMT+0000(GMT)"我想要的输出是:"TueJan17201212:55:00" 最佳答案 不适用于内置Dateob

Math 对象的 JavaScript 代码

我正在开发一个将JavaScript源代码转换为目标语言的翻译器。我正在尝试用目标语言实现JavaScript的Math对象。如果有“数学”对象的JavaScript实现,我可以使用翻译器获取目标语言的等效代码。我正在寻找这样的东西:varMath={pow:function(...){...}exp:function(...){...}/*othermethodsofMath*/}有这样的实现吗?这将帮助我避免用目标语言手动编写Math对象的代码。 最佳答案 math.js的V8实现可能会为您提供一些指导,但当然它充满了本地函数调

javascript - Math.E 等于 0.99.... ^ max int

一位friend向我展示了(至少在googlechrome控制台中)以下语句打印为真:1/Math.pow(0.9999999999999999,Number.MAX_SAFE_INTEGER)===Math.E事实上,1/Math.pow(0.9999999999999999,Number.MAX_SAFE_INTEGER)是2.718281828459045。这不会是巧合吧?!有人能解释一下幕后发生了什么吗?根据wolframalpha,正确的值应该大约为1/0.40628,大约为2.4613566998129373--与Math.E相去甚远。(我假设wolframalpha的计算