Как начать и завершить день в Javascript?

Как начать (00:00:00) и завершить (23:59:59) сегодня в timestamp (GMT)? Компьютер использует локальное время.

Ответ 1

var start = new Date();
start.setHours(0,0,0,0);

var end = new Date();
end.setHours(23,59,59,999);

alert( start.toUTCString() + ':' + end.toUTCString() );

Если вам нужно получить время UTC от них, вы можете использовать UTC().

Ответ 2

Используя библиотеку momentjs, это может быть достигнуто с помощью startOf() и endOf() в текущий момент, передавая строку 'day' в качестве аргументов:

Местный GMT:

var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today

Для UTC:

var start = moment.utc().startOf('day'); 
var end = moment.utc().endOf('day'); 

Ответ 3

Используя библиотеку luxon.js, то же самое можно достичь с помощью методов startOf и endOf, передав "день", как параметр

var DateTime = luxon.DateTime;
DateTime.local().startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
DateTime.local().endOf('day').toUTC().toISO(); //2017-11-17T18:29:59.999Z
DateTime.fromISO(new Date().toISOString()).startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z

удалить .toUTC(), если вам нужно только локальное время

и вы можете спросить, почему не moment.js, ответ здесь для этого.

Ответ 4

Я предпочитаю использовать date-fns библиотеку для обработки даты. Это действительно отличный модульный и последовательный инструмент. Вы можете начать и завершить день следующим образом:

var startOfDay = dateFns.startOfDay;
var endOfDay = dateFns.endOfDay;

console.log('start of day ==> ', startOfDay(new Date('2015-11-11')));
console.log('end of day ==> ', endOfDay(new Date('2015-11-11')));
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>

Ответ 5

function getTime(zone, success) {

    var url = 'http://json-time.appspot.com/time.json?tz=' + zone,
        ud = 'json' + (+new Date());
    window[ud]= function(o){
        success && success(new Date(o.datetime));
    };
    document.getElementsByTagName('head')[0].appendChild((function(){
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.src = url + '&callback=' + ud;
        return s;
    })());
}

getTime('GMT', function(time){

    // This is where you do whatever you want with the time:
    alert(time);
});

Ссылка: Получение текущего времени по Гринвичу