如何在javascript中获得今天开始的unix时间戳?
How do you get the unix timestamp for the start of today in javascript?
我意识到当前时间戳可以通过以下方式生成…
var timestamp = Math.round((new Date()).getTime() / 1000);
我想要的是当天开始的时间戳。例如,当前时间戳大致为1314297250
,我希望能够生成的是1314230400
,即今天的开始August 25th 2011
。
谢谢你的帮助。
var now = new Date();
var startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var timestamp = startOfDay / 1000;
最干净、最快捷的方法是:
long timestamp = 1314297250;
long beginOfDay = timestamp - (timestamp % 86400);
其中86400是一天中的秒数
var now = new Date; // now
now.setHours(0); // set hours to 0
now.setMinutes(0); // set minutes to 0
now.setSeconds(0); // set seconds to 0
var startOfDay = Math.floor(now / 1000); // divide by 1000, truncate milliseconds
var d = new Date();
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setMilliseconds(0);
var t = d / 1000;
Luis Fontes的解决方案返回UTC时间,因此它可以与setHours解决方案不同1小时(夏令时)。
var d = new Date();
var t = d - (d % 86400000);
上述示例的简化版本(本地时间)。
var d = new Date();
d.setHours(0,0,0,0);
var t = d / 1000;
您可以在这里找到一些性能测试:http://jsperf.com/calc-start-of-day
或者,您可以减去以毫秒为单位的日长度的模,例如
var day = 24*60*60*1000;
var start_of_today = Date.now() - Date.now() % day;
另一种获取一天开始时间的方法是:
var now = new Date();
var beginningOfDay = new Date(now.getTime() -
now.getHours() * 60 * 60 * 1000 -
now.getMinutes() * 60 * 1000 -
now.getSeconds() * 1000 -
now.getMilliseconds());
var yoursystemday = new Date(new Date().getTime()-(120000*60+new Date().getTimezoneOffset()*60000));
yoursystemday = new Date();
var current_time_stamp = Math.round(yoursystemday.getTime()/1000);
对于任何日期,使用ISO日期字符串('yyyy-mm-dd')很容易获得日期开始/结束的时间戳:
var dateString = '2017-07-13';
var startDateTS = new Date(`${dateString}T00:00:00.000Z`).valueOf();
var endDateTS = new Date(`${dateString}T23:59:59.999Z`).valueOf();
要获得今天的ISO字符串,您将使用(new Date()).toISOString().substring(0, 10)
所以要获得今天的TS:
var dateString = (new Date()).toISOString().substring(0, 10);
var startDateTS = new Date(`${dateString}T00:00:00.000Z`).valueOf();
var endDateTS = new Date(`${dateString}T23:59:59.999Z`).valueOf();
var now = new Date();
var startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var timestamp = startOfDay.getTime() / 1000;
相关文章:
- Jquery如何检查今天的时间大于使用给定时间
- 如何添加类,同时开始在文本字段中输入文本
- 希望日期开始结束于while循环中的一个房间id的一个数组
- ng模型内的ng重复的ng重复开始
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- Yii2从点击链接开始加载模式
- Jquery幻灯片以一行左侧的图像开始,但我希望它从右端开始
- 从REST服务器和Coffeescapet前端开始
- 从今天开始的Javascript天+/-
- 如何使用Moment.js获取EST的今天开始时间和当前时间
- 创建一个从今天开始的最近 7 天的名称数组 - javascript
- 无法使用日期选择器禁用从今天开始的日期
- Javascript从今天开始计算天数
- 从今天开始获取UTC时间戳's当地时间
- 谷歌地图API -自定义原型标记图像从今天开始不显示
- 使用Javascript AngularJS显示从今天开始的365天
- 如何在javascript中获得今天开始的unix时间戳?
- 高效地创建Javascript日期从今天-1年(时间)在Unix时间
- 在日期选取器中将今天设置为该月的开始日
- 如何使用jQuery ui datepicker计算从今天开始的天数?