// Открываем файл, флаг W означает - файл открыт на запись
$f_hdl = fopen($_SERVER['REMOTE_ADDR'].".txt", 'w');
// Записываем в файл $text
fwrite($f_hdl, time());
// Закрывает открытый файл
fclose($f_hdl);
if($time=file_get_contents($_SERVER['REMOTE_ADDR'].".txt",)) {
// в переменную $time будет записано time() с предыдущего захода.
// проверяем промежуток между заходами
$result = time() - $time;
// в переменную $result записано промежуточное время между заходами в миллисекундах
}
// Переменная $myTime содержит время через которое можно его пускать еще раз
$myTime = 600;
$result = 60;
if($myTime > $result) {
header("HTTP/1.1 503");
exit();
}
Promise.resolve(value)
- это статический метод, возвращающий промис в состоянии fulfilled с указанным значением.new Promise((resolve) => resolve(value))
И можно как-то выполнить промис без аргументов?Что значит "выполнить"? Создать можно, сменить статус с pending на fulfilled нельзя, на rejected можно по исключению.
new Promise((แก้ไข) => แก้ไข('Решено'));
//Promise { <state>: "fulfilled", <value>: "Решено" }
// Demonstrate selected international locales
var locales = [
undefined, // Your own browser
'en-US', // United States
'de-DE', // Germany
'ru-RU', // Russia
'hi-IN', // India
'de-CH', // Switzerland
];
var n = 100000;
var opts = { minimumFractionDigits: 2 };
for (var i = 0; i < locales.length; i++) {
console.log(locales[i], n.toLocaleString(locales[i], opts));
}
undefined '100 000,00'
en-US 100,000.00
de-DE 100.000,00
ru-RU 100 000,00
hi-IN 1,00,000.00
de-CH 100’000.00
const number = 123456.789;
new Intl.NumberFormat('ru-RU').format(number);
// "123 456,789"
по умолчанию { style: 'decimal' }
new Intl.NumberFormat('ru-RU', { minimumFractionDigits: 6 })
.format(123456.789012345);
// "123 456,789012" - после запятой не разделяет
const obj = new Proxy({}, {
get(target, key) {
const lowerKey = key.toLowerCase();
return target[Object.hasOwn(target, lowerKey) ? lowerKey : key];
},
set(target, key, val) {
target[key.toLowerCase()] = val;
return true;
},
has(target, key) {
return key in target || key.toLowerCase() in target;
},
defineProperty(target, key, descriptor) {
return Object.defineProperty(target, key.toLowerCase(), descriptor);
},
deleteProperty(target, key) {
return delete target[key.toLowerCase()];
},
getOwnPropertyDescriptor(target, key) {
return Object.getOwnPropertyDescriptor(target, key.toLowerCase());
},
});
html, body { /* обязательно сразу для html и body */
scroll-behavior: smooth;
}
(function toster() {
console.log(toster);
})();
const test = (x) => { console.log(x); return false; };
if (test(1) && test(2)) {
console.log('???');
}