@GhostZ said in Как из строки удалить все Эмодзи?:
[[TEXT]] = [[TEXT]].replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '');
да, это помогло, спасибо
Есть дата вот в таком формате
2022-09-13T21:33:06Z
Как определить часовой пояс, чтобы изменить DATE_NOW в тот же часовой пояс ?
Z это я так понимаю 0, тоесть DATE_NOW надо переводить с 0
или вообще тогда ничего переводить не надо ?
Верно, Z обозначает нулевое смещение UTC. В данном случае переводить время нужно на UTC 00:00, потому что блок "Дата сейчас" показывает время с текущим часовым поясом компьютера (с другим UTC).
Чтобы применить нужное смещение ко времени компьютера, я обычно делаю так:
[[DATE_NOW1]] = applyOffset(0); //Пример для 2022-09-13T21:33:06Z (Гвинея) UTC 00:00
[[DATE_NOW2]] = applyOffset(3*60); //Пример для 2022-09-13T21:33:06+03:00 (Москва) UTC 03:00
[[DATE_NOW3]] = applyOffset(-4*60); //Пример для 2022-09-13T21:33:06-04:00 (Ямайка) UTC -04:00
function applyOffset(offset) {
var userOffset = new Date().getTimezoneOffset(); //Текущее смещение компьютера (UTC в минутах)
var differenceOffset = userOffset + offset; //Вычисление нужного смещения (применим к текущему времени)
var dateComputer = new Date(); //Текущие дата и время на компьютере
var result = dateComputer.setMinutes(dateComputer.getMinutes() + differenceOffset); //Применение смещения
return new Date(result);
}
Правильно меняет время и меняет дату (если по нужному UTC уже наступил другой день). Какой часовой пояс на компьютере - неважно, все успешно применится (главное, чтобы время по настроенному часовому поясу компьютера было правильным). Если нужно изменять дату и время под определенную страну, то следует помнить, что есть места, где, например, зимой UTC -04:00, а весной переводится на UTC -03:00. Если нужно просто применить смещение по UTC, то проблем никаких нет (время по UTC не переводится ни зимой, ни летом).
А стандартный блок "Изменить часовой пояс даты" у меня почему-то вообще не работает).
Спасибо, думал кубик изменить часовой пояс и должен это делать...ф
чтобы исключить ошибки неправильно установленного времени на компе с которого запускается скрипт, нашел пример как получать время в заданном часовом поясе по API
let plus = 3; // Сколько времени прибавляем (+3 это время по Москве)
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://worldtimeapi.org/api/timezone/Europe/London', false); // Делаем запрос по Лондону
xhr.send(); // отправляем
if (xhr.status != 200) {
console.log( xhr.status + ': ' + xhr.statusText ); // Если статус не равен 200, то выводим ошибку.
} else {
let time = xhr.responseText; // получаем текст ответа
let z = JSON.parse(time).utc_datetime; // Получаем время utc
let time1 = new Date(z).getTime(); // Переводим в timestamp
let timestampPlus = time1 + (plus * 60 * 60 * 1000); // Воемя +3 часа. Если надо получить время UTC, то убираем просто параметр plus
let timePlus = new Date(timestampPlus); // Переводим во время (Тут надо понимать, что система сама переведёт его в текущую временную зону
let result = timePlus.toUTCString(); // Переводим в строку UTC;
console.log(result); // Выводим дату.
}
вообщем пойду тестировать.