我有一个我正在使用的插件,它需要将选择的日期作为unix时间戳传递,因为它允许您向下钻取。
我遇到的问题是它创建的UNIX时间戳也被限制在一定的时间段内,所以当我运行我的查询时,它只能在指定的时间之间得到我的东西。 (我明白时间戳是什么)。
我按如下方式生成时间戳:
function myDate(input) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
input = input.split('-');
input[1] = months.indexOf(input[1]);
return new Date(+input[2], +input[1], +input[0])
}
var startDate = myDate('01-Apr-2015')
startDate = startDate.getTime() / 1000.0;
alert(startDate)
在这里小提琴:http://jsfiddle.net/rnho8k3s/
我的目标/最终结果是让时间跨度为1428019200
到1428105599000
,即2015年4月3日00:00:00 - 2015年4月3日23:59:59 < / p>
如何实现这一目标,而不是从当前时间点创建时间戳?
答案 0 :(得分:0)
我为PHP构建了这样的东西,我称之为“DateFrame”。
基本上,您必须捕获所需的日期,追加开始(00:00:00)和结束(23:59:59)时间戳,并使用Javascripts Date类生成时间戳。
也许它可以提供帮助。
https://github.com/dmgig/DateFrame
public function __construct($start, $end, $field = null){
$this->start = date('Y-m-d', strtotime($start)) . ' 00:00:00';
$this->end = date('Y-m-d', strtotime($end)) . ' 23:59:59';
$startdiff = new DateTime($this->start);
$enddiff = new DateTime($this->end);
$this->diff = $enddiff->diff($startdiff)->format('%a');
}
答案 1 :(得分:0)
要获得一天开始和结束的两个UTC时刻,您可以使用以下内容。
// Yr Nov 1st
var begin = Date.UTC(2012, 11, 0);
// ms sec min hour
var end = begin + (1000 * 60 * 60 * 24) - 1;