(например, если у нас на странице разных 40 параметров, то при стандартном решении это будет - 40 запросов в базу, нужно максимально сократить данное значение).
<?php
$date = '3 марта 1990';
$replaces = [
' января ' => '.01.',
' февраля ' => '.02.',
' марта ' => '.03.',
' апреля ' => '.04.',
' мая ' => '.05.',
' июня ' => '.06.',
' июля ' => '.07.',
' августа ' => '.08.',
' сентября ' => '.09.',
' октября ' => '.10.',
' ноября ' => '.11.',
' декабря ' => '.12.',
];
$timestamp = strtotime(strtr($date, $replaces));
echo date("d F Y", $timestamp);
<?php
function myDataFormat($d) {
$months = [
'январь'=>'01',
'июнь'=>'06',
'июля'=>'07'
];
$splitted_data = explode(' ', $d);
return $splitted_data[2]
. $months[$splitted_data[1]]
. str_pad($splitted_data[0], 2, '0', STR_PAD_LEFT) ;
}
function mySort($arr) {
usort(
$arr,
function($a, $b) {
return myDataFormat($a['data']) <=> myDataFormat($b['data']);
}
);
return $arr;
}
$arr= [
[
"header"=>'',
"title"=>'',
"data"=>'12 июнь 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'30 июнь 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'1 июля 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'1 январь 2020',
]
];
$sorted = mySort($arr);
print_r($sorted);
const newStr = new Date(str.split(' GMT', 1)[0])
.toLocaleDateString('ru-RU')
.split('.')
.reverse()
.join(', ');
const formatDateStr = function(str) {
const [ , month, day, year ] = str.match(/(\S+) (\d+) (\d+)/);
return [ year, this[month], day.padStart(2, 0) ].join(', ');
}.bind(Object.fromEntries(Array.from({ length: 12 }, (_, i) => [
new Date(0, i).toLocaleString('en', { month: 'short' }),
`${i + 1}`.padStart(2, 0)
])));
const newStr = formatDateStr(str);
function MyDate(date){
this.date = new Date(date);
const options = {
year: 'numeric',
month: 'numeric',
day: '2-digit'
}
const locale = 'en'
const f = new Intl.DateTimeFormat(locale, options);
const [{ value: mo },,{ value: da },,{ value: ye }] = f.formatToParts(this.date);
this.formatData = () => console.log(`${ye},${mo},${da}`);
}
let d = new MyDate('Tue Apr 27 2021 00:33:00 GMT+0500 (Екатеринбург, стандартное время)');
d.formatData();
const find = (data, key) => Object
.entries(data instanceof Object ? data : {})
.reduce((found, [ k, v ]) => found ?? (k === key ? v : find(v, key)), null);
function find(data, key) {
for (const stack = [ data ]; stack.length;) {
const n = stack.pop();
if (n?.hasOwnProperty(key)) {
return n[key];
}
stack.push(...Object.values(n ?? {}));
}
return null;
}
const findByKey = (object, key) => {
if (object instanceof Array) {
for (let i = 0; i < object.length; i++) {
let result = findByKey(object[i], key);
if (result !== null) {
return result;
}
}
return null;
}
for (let p in object) {
if (p === key) {
return object[p]
} else if (typeof object[p] === 'object') {
let result = findByKey(object[p], key);
if (result !== null) {
return result;
}
}
}
return null;
}
findByKey(someObject, someKey)