CMS*_*CMS 797
该setHours方法可以采取可选的minutes,seconds和ms参数,例如:
var d = new Date();
d.setHours(0,0,0,0);
Run Code Online (Sandbox Code Playgroud)
这将设置时间00:00:00.000的您当前的时区,如果你想在UTC时间来工作,你可以使用setUTCHours方法.
Dan*_*Dan 198
只是想澄清一下,接受答案的片段给出了最近的午夜:
var d = new Date();
d.setHours(0,0,0,0); // last midnight
Run Code Online (Sandbox Code Playgroud)
如果您希望将来获得最近的午夜,请使用以下代码:
var d = new Date();
d.setHours(24,0,0,0); // next midnight
Run Code Online (Sandbox Code Playgroud)
Zon*_*Zon 57
对象配置的单行程:
new Date(new Date().setHours(0,0,0,0));
Run Code Online (Sandbox Code Playgroud)
创建元素时:
dateFieldConfig = {
name: "mydate",
value: new Date(new Date().setHours(0, 0, 0, 0)),
}
Run Code Online (Sandbox Code Playgroud)
and*_*sit 21
只是在这里添加这个,因为我登陆了这个页面,寻找如何在moment.js中执行此操作,其他人也可以这样做.
[理由:"时刻"这个词已经出现在这个页面的其他地方,所以搜索引擎就在这里,而且moment.js足够广泛,可以保证在其他日期相关的SO问题中提到的频率被提及
因此,在2.0.0及更高版本中:
date.startOf('day');
Run Code Online (Sandbox Code Playgroud)
对于早期版本:
date.sod();
Run Code Online (Sandbox Code Playgroud)
文档:
http://momentjs.com/docs/#/manipulating/start-of/
小智 9
你可以使用
new Date().setUTCHours(0,0,0,0)
Run Code Online (Sandbox Code Playgroud)
如果您只需要一次该值.
为@Dan 的示例添加有用性,我需要找到下一个中午或午夜。
var d = new Date();
if(d.getHours() < 12) {
d.setHours(12,0,0,0); // next midnight/midday is midday
} else {
d.setHours(24,0,0,0); // next midnight/midday is midnight
}
Run Code Online (Sandbox Code Playgroud)
这使我能够为活动设置频率上限,只允许该活动在上午和下午对我网站的任何访问者进行一次。捕获的日期用于设置 cookie 的过期时间。
我制作了几个原型来帮我处理这个问题。
// This is a safety check to make sure the prototype is not already defined.
Function.prototype.method = function (name, func) {
if (!this.prototype[name]) {
this.prototype[name] = func;
return this;
}
};
Date.method('endOfDay', function () {
var date = new Date(this);
date.setHours(23, 59, 59, 999);
return date;
});
Date.method('startOfDay', function () {
var date = new Date(this);
date.setHours(0, 0, 0, 0);
return date;
});
Run Code Online (Sandbox Code Playgroud)
如果您不想进行安全检查,那么您可以使用
Date.prototype.startOfDay = function(){
/*Method body here*/
};
Run Code Online (Sandbox Code Playgroud)
用法示例:
var date = new Date($.now()); // $.now() requires jQuery
console.log('startOfDay: ' + date.startOfDay());
console.log('endOfDay: ' + date.endOfDay());
Run Code Online (Sandbox Code Playgroud)
小智 5
如果使用夏季日期计算通常会导致比午夜 (CEST) 多 1 uur 或少 1 小时。当日期返回时,这会导致 1 天的差异。所以日期必须四舍五入到最近的午夜。所以代码将是(ths to jamisOn):
var d = new Date();
if(d.getHours() < 12) {
d.setHours(0,0,0,0); // previous midnight day
} else {
d.setHours(24,0,0,0); // next midnight day
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179807 次 |
| 最近记录: |