2016-01-27 4 views
0

У меня есть тест-протрактор, где я уверен, что текст даты в моем элементе равен текущей дате. Это не всегда работает, потому что одно значение идет от UTC, где другой захватывает локальный часовой пояс. Как я могу сравнить оба эти значения, чтобы убедиться, что они совпадают с датой? Благодарю.Преобразование двух разных смещений в ту же самую дату UTC

var moment = require('moment'); 
var dateFormatted = moment().utcOffset(-420).format('MMM DD, YYYY'); // set to Arizona time 
var dateInfo = element(by.css('.date')); 
dateInfo.getText().then(function (dateText) { 
    var textFormatted = moment(dateText).utcOffset(-420).format('MMM DD, YYYY'); 
    expect(textFormatted).toEqual(dateFormatted); 
}); 
+0

вы пытаетесь использовать [isSame] (http://momentjs.com/docs/#/query /такой же/)? – Artem

+1

Вы вводите в заблуждение временные интервалы со смещениями, которые связаны друг с другом. –

+0

@Artem Я не знал об этом раньше, но я пробовал, и это неверно – cocoa

ответ

0

Так что я понял это. Используя советы Амана и делать moment().utc(), вот мое решение:

var moment = require('moment'); 
var dateInfo = element(by.css('.date')); 
var dateFormatted = moment().utc('MMM DD, YYYY').format('MMM DD, YYYY'); // set to UTC timezone 
dateInfo.getText().then(function (dateText) { 
    var textFormatted = moment().utc(dateText,'MMM DD, YYYY').format('MMM DD, YYYY'); 
    expect(textFormatted).toEqual(dateFormatted); 
}); 

Я использовал этот question для справки

1

Преобразовать как раз utc с помощью moment().utc()

var moment = require('moment'); 
var dateFormatted = moment().utc().format('MMM DD, YYYY'); // set to UTC timezone 
var dateInfo = element(by.css('.date')); 
dateInfo.getText().then(function (dateText) { 
    expect(moment(dateText).utc().format('MMM DD, YYYY')).toEqual(dateFormatted); 
}); 
+0

, что doesn ' я работаю для меня. я все еще получаю ожидаемое 28 января 2016 года, равное 27 января 2016 года ». – cocoa

+0

Это значения, которые я неформатировал: «2016-01-28T07: 00: 00 + 00: 00, 016-01-27T19: 04: 26 + 00: 00« – cocoa

+0

Даты уже UTC. Чтобы сравнить дату UTC, используйте методы UTC. Но два Даты в одну и ту же дату в конкретном часовом поясе могут быть не в тот же день UTC (или в любой другой часовой пояс). – RobG

Смежные вопросы