function offsetToMs(s) {
const [h, m] = s.replace(/utc/i, '').split(':').map(x => Number(x.replace(/\D/, '')))
const ms = (h * 60 * 60 * 1000) + (m * 60 * 1000)
return s.includes('-') ? -ms : ms
}
off = offsetToMs("UTC+05:30")
console.log( new Date(new Date().getTime() + off) )
когда я добавил второй таймаут
for (let i = 0; i < 5; i++) {
setTimeout(() => console.log('timeout #1', i), i * 1000)
setTimeout(() => console.log('timeout #2 delayed 500ms', i), i * 1000 + 500)
}
async componentDidMount() {
const response = await fetch('/api/get_all_data')
const data = await response.json()
this.setState({ data: data })
}
b.filter(bb => !a.includes(bb))
a.forEach((element, index) => {
...
});
в каких случаях он нужен
<input type="radio"
name="option[<?php echo $option['product_option_id']; ?>]"
value="<?php echo $option_value['product_option_value_id']; ?>"
<?php if ($option_value === array_key_first($option['product_option_value'])) echo 'checked'; ?>
/>
посмотри в консоли браузера стили, это НЕ горизонтальная перемотка, а через css анимируется ширина width блоков, страница поделена на левый/правый и в нужный момент подставляется ширина нужному блоку
string = 'acj34298a'
console.log(string.length, new Set([...string]).size)
// 9 8
const { isConfirmation } = props;
это происходит при рендере,import { useDispatch } from 'react-redux'
const dispatch = useDispatch()
..
const token = getAuthToken()
dispatch({ type: SET_ACCESS_TOKEN, payload: token })