Как изменить метку времени Unix в будущем до оставшихся секунд - PullRequest
1 голос
/ 12 января 2012

Я пытаюсь создать таймер обратного отсчета JavaScript;

У меня есть строка в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС.

Это может быть в любое время до 6 месяцев в будущем.

Как лучше всего получить оставшееся время в секундах с настоящего момента до будущего времени.Это может быть реализовано в PHP.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 12 января 2012

В PHP вы можете использовать strtotime, который принимает строковое представление даты и возвращает метку времени Unix.

Затем используйте microtime, чтобы получить текущую метку времени Unix и найти разницу.Это будет количество оставшихся миллисекунд, поэтому разделите его на 1000, чтобы получить в секундах.

http://php.net/manual/en/function.strtotime.php
http://php.net/manual/en/function.microtime.php

Это должно работать:

$currentTime = explode(" ", microtime());
$currentTime = $currentTime[1];
$futureTime = strtotime("YYYY-MM-DD HH:MM:SS"); // insert your date here
$timeRemaining = ($futureTime - $currentTime) / 1000;
1 голос
/ 12 января 2012

Как вы получаете эту строковую метку времени? Отметка времени Unix фактически уже «количество секунд с 1970-01-01 00:00:00». Это похоже на собственную строку даты MySQL.

Если он выходит из MySQL, вы можете преобразовать его в метку времени в стиле Unix с помощью UNIX_TIMESTAMP(), например,

SELECT unix_timestamp(datetimefield) ...

и затем преобразуйте его в метку времени Javascript, умножив на 1000 (метки времени JS имеют ту же эпоху, но в миллисекундах).

Если вы застряли в PHP, вы можете быстро / грязно с

$timestamp = strtotime($time_string);
$js_timestamp = $timestamp * 1000;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...