Функция нормализации общего назначения для форматирования любой временной метки из любого часового пояса в другой. Очень полезно для хранения datetimestamps пользователей из разных часовых поясов в реляционной базе данных. Для сравнения баз данных отметьте метку времени как UTC и используйте ее с gmdate('Y-m-d H:i:s')
/**
* Convert Datetime from any given olsonzone to other.
* @return datetime in user specified format
*/
function datetimeconv($datetime, $from, $to)
{
try {
if ($from['localeFormat'] != 'Y-m-d H:i:s') {
$datetime = DateTime::createFromFormat($from['localeFormat'], $datetime)->format('Y-m-d H:i:s');
}
$datetime = new DateTime($datetime, new DateTimeZone($from['olsonZone']));
$datetime->setTimeZone(new DateTimeZone($to['olsonZone']));
return $datetime->format($to['localeFormat']);
} catch (\Exception $e) {
return null;
}
}
Использование:
blockquote>$from = ['localeFormat' => "d/m/Y H:i A", 'olsonZone' => 'Asia/Calcutta']; $to = ['localeFormat' => "Y-m-d H:i:s", 'olsonZone' => 'UTC']; datetimeconv("14/05/1986 10:45 PM", $from, $to); // returns "1986-05-14 17:15:00"
Самым простым способом было бы использовать встроенную функцию Number
:
var x = Number("1000")
Если это не сработает для вас, то есть parseInt ], унарный плюс , parseFloat with floor и Math.round методы.
parseInt:
var x = parseInt("1000", 10); // you want to use radix 10
// so you get a decimal number even with a leading 0 and an old browser ([IE8, Firefox 20, Chrome 22 and older][1])
унарный плюс если ваша строка уже имеет форму целого числа:
var x = +"1000";
, если ваша строка является или может быть числом с плавающей запятой и вам нужно целое число:
var x = Math.floor("1000.01"); //floor automatically converts string to number
или, если вы собираетесь использовать Math.floor несколько раз:
var floor = Math.floor;
var x = floor("1000.01");
Если вы из тех, кто забывает ввести систему счисления при вызове parseInt, вы можете использовать parseFloat и округлять его как угодно. Здесь я использую пол.
var floor = Math.floor;
var x = floor(parseFloat("1000.01"));
Интересно, что Math.round (например, Math.floor) выполняет преобразование строки в число, поэтому, если вы хотите округлить число (или если у вас есть целое число в строке), это отличный вариант. Кстати, может быть, мой любимый:
var round = Math.round;
var x = round("1000"); //equivalent to round("1000",0)
Самый безопасный способ удостовериться Вы получаете допустимое целое число:
let integer = (parseInt(value, 10) || 0);
Примеры:
// Example 1 - Invalid value:
let value = null;
let integer = (parseInt(value, 10) || 0);
// => integer = 0
// Example 2 - Valid value:
let value = "1230.42";
let integer = (parseInt(value, 10) || 0);
// => integer = 1230
// Example 3 - Invalid value:
let value = () => { return 412 };
let integer = (parseInt(value, 10) || 0);
// => integer = 0
function parseIntSmarter(str) {
// ParseInt is bad because it returns 22 for "22thisendsintext"
// Number() is returns NaN if it ends in non-numbers, but it returns 0 for empty or whitespace strings.
return isNaN(Number(str)) ? NaN : parseInt(str, 10);
}
можно использовать плюс, например, =>
персонаж var = '24'; var personAge1 = (+personAge)
затем Вы видите, что typeof персонаж является номером
Попробуйте функцию parseInt:
var number = parseInt("10");
Но есть проблема. Если вы попытаетесь преобразовать «010» с помощью функции parseInt, она определит восьмеричное число и вернет число 8. Итак, вам нужно указать систему счисления (от 2 до 36). В данном случае база 10.
parseInt(string, radix)
Пример:
var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false
Обратите внимание, что parseInt
игнорирует неверные данные после синтаксического анализа чего-либо действительного.
Этот гид будет разбираться как 51:
var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true
Попробуйте parseInt.
var number = parseInt("10", 10); //number will have value of 10.
Также в качестве примечания: в Mootools есть функция toInt (), которая используется в любой собственной строке (или с плавающей точкой (или целым числом)).
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
Остерегайтесь, если вы используете parseInt для преобразования числа с плавающей запятой в научную нотацию! Например:
parseInt("5.6e-14")
приведет к
5
вместо
0