Глядя на ваш вопрос, становится ясно, что вы просто хотите отправить диапазон дат в свой бэкэнд для дальнейшей постобработки.
Я предполагаю, что вы соответствуете стандартным рекомендациям по данным, которые предполагают, что данные будут в определенном формате. Например, я использую ODATA, который представляет собой RESTfull API, который ожидает, что объекты даты и времени будут в формате: -
YYYY-MM-DDT00: 00: 00.
Это может быть легко достигнуто с помощью фрагмента, размещенного ниже (Пожалуйста, измените формат согласно вашему требованию).
var mydate;//assuming this is my date object which I want to expose
var UTCDateStr = mydate.getUTCFullYear() + "-" + mydate.getUTCMonth() + "-" + mydate.getUTCDate() + "T00:00:00";
Если, с другой стороны, вы находитесь в моей ситуации, когда вы получили дату от своего бэкэнда, и браузер преобразует ее в вашу местную дату. Вас, с другой стороны, интересует дата UTC, тогда вы можете выполнить следующее: -
var mydate;//assuming this is my date object which I want to expose
var UTCDate = new Date(mydate);/*create a copy of your date object. Only needed if you for some reason need the original local date*/
UTCDate.setTime(UTCDate.getTime() + UTCDate.getTimezoneOffset() * 60 * 1000);
Приведенный выше фрагмент кода в основном добавляет / вычитает время, добавляемое / вычитаемое браузером, на основе часового пояса.
Например, если я нахожусь в EST (GMT-5) и моя служба возвращает объект даты и времени = ср 17 августа 2016 00:00:00 GMT-0500
мой браузер автоматически вычитает смещение часового пояса (5 часов), чтобы узнать мое местное время. Поэтому, если я попытаюсь получить время, то получу ср. 16 августа 2016 г. 19:00:00 GMT-0500. Это вызывает много проблем. Есть много библиотек, которые определенно сделают это проще, но я хотел бы поделиться чистым подходом JS.
Для получения дополнительной информации, пожалуйста, посмотрите: http://praveenlobo.com/blog/how-to-convert-javascript-local-date-to-utc-and-utc-to-local-date/, где я черпал свое вдохновение.
Надеюсь, это поможет!