2015-04-03 3 views
0

У меня есть плагин, который я использую, для которого требуется дата, выбранная для передачи как временная метка unix, так как она позволяет вам развернуть.Javascript Unix Timestamp Conversion

Проблема, с которой я сталкиваюсь, заключается в том, что временная метка 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) 

Fiddle Здесь: http://jsfiddle.net/rnho8k3s/

Моя цель/конечный результат должен иметь метка времени охватывают весь день 1428019200 через 1428105599000 который 3 апреля 2015 00:00:00 - 3 апреля 2015 г. 23:59:59

Как я могу достичь этого вместо того, чтобы создать временную метку с текущего момента времени?

+1

Это не совсем понятно, о чем вы просите. Что вы имеете в виду, «иметь временную отметку в течение всего дня». Временная метка - это момент времени, а не временной интервал. Вы хотите, чтобы две временные метки представляли начало и конец дня? – stovroz

+0

Пропускаю это день (3 апреля 2015 г.) Я хочу получить отметку времени для этой даты (а не текущее время), но в самом начале дня '00: 00: 00'. Я также хочу получить конец дня '23: 59: 59'. Это дало бы мне временную метку, охватывающую весь день. – SBB

+0

В конце я смогу сказать: «Дата начала - 3 апреля 2015 года, а дата окончания - 5 апреля 2015 года. В моем запросе мне нужно все, что между который должен быть 3 апреля 2015 года 00:00:00 до 15 апреля 2015 года 23:59:59. – SBB

ответ

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'); 

} 
0

Чтобы получить два UTC моментов для начала и конца дня, вы можете использовать следующее.

//     Yr Nov 1st 
var begin = Date.UTC(2012, 11, 0); 
//     ms sec min hour 
var end = begin + (1000 * 60 * 60 * 24) - 1; 
+0

Есть ли плагин, с которым это необходимо использовать? Я получаю следующую ошибку: 'TypeError: Date.UTC (...). GetTime не является функцией' – SBB

+0

@SBB Извините, нет необходимости в 'getTime()' ['Date.UTC'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC) уже возвращает отметку времени. Кроме того, для отметки времени unix вам нужно умножить их на 1000, поскольку JavaScript использует миллисекунды. –