многомерный массив из php
доброго времени суток всем) у меня есть некий код на php, мне надо его перевести на js, впрочем я справился, весь код перевёл кроме нижеследующего участка кода:
$integ = array( $df < 31556926 => array('ay', 2628000), $df < 2629744 => array('həftə', 604800), $df < 604800 => array('gün', 86400), $df < 86400 => array('saat', 3600), $df < 3600 => array('dəqiqə', 60), $df < 60 => array('saniyə', 1) ); // переменная $df уже создана, просто не вижу смысла весь код прописать, мне главное этот массив как-то спилить под js :) буду очень признателен если поможете и этот маленький участок тоже перевести в js :) |
Цитата:
(function () { var df = 3601; var mas = [ [ 31556926, ['ay', 2628000] ], [ 2629744, ['həftə', 604800] ], [ 604800, ['gün', 86400] ], [ 86400, ['saat', 3600] ], [ 3600, ['dəqiqə', 60] ], [ 60, ['saniyə', 1] ] ]; var arr = []; for ( var i = 0, len = mas.length; i < len; i++ ) { var el = mas[i][1]; if ( df < mas[i][0]) { arr[1] = el; } else { arr[0] = el; } } console.log(arr); })(); |
спасибо большое, очень признателен, но вот теперь не могу в код встроить это, в js не так уж силён по сравнению с php :/ всмысле вставил, подправил названия переменных, но код не выполняется, в консоле тоже пусто, в целом код выглядит так
function ago(time) { var df = time() - time; if (df <= 19) { return 'Elə indi'; } else if (df > 19 && df <= 59) { return 'Bir neçə saniyə əvvəl'; } // тут должно быть тот кусочек, естесвенно его прописал уже без (function() { и т д var value = Math.floor(df/intg[1][1]); var ago = value + ' ' + intg[1][0]; var days = new Array ('Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə'); var day = days[date('w', time)]; var months = new Array ('', 'Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'); var month = months[date('m', time)]; if (ago == '1 gün') { return 'Dünən ' + date('H:i', time); } else if ((value == 2 || value == 3 || value == 4 || value == 5 || value == 6 || value == 7) && intg[1][0] == 'gün') { return day + ' günü ' + date('H:i', time); } else if (value <= 59 && intg[1][0] == 'dəqiqə' || intg[1][0] == 'saat') { return ago + ' əvvəl'; } else { return date('d', time) + ' ' + month + ' ' + date('Y H:i', time); } } как поступить? :( кстати вот оригинальный код php function ago($time) { $df = time() - (int)$time; if ($df <= 19) { return 'Elə indi'; } elseif ($df > 19 && $df <= 59) { return 'Bir neçə saniyə əvvəl'; } $int = array( $df < 31556926 => array('ay', 2628000), $df < 2629744 => array('həftə', 604800), $df < 604800 => array('gün', 86400), $df < 86400 => array('saat', 3600), $df < 3600 => array('dəqiqə', 60), $df < 60 => array('saniyə', 1) ); $value = floor($df/$int[1][1]); $ago = $value.' '.$int[1][0]; $days = array('Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə'); $day = $days[date('w', $time)]; $months = array('', 'Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'); $month = $months[(int)date('m', $time)]; if ($ago == '1 gün') { return 'Dünən '.date('H:i', $time); } elseif (($value == 2 || $value == 3 || $value == 4 || $value == 5 || $value == 6 || $value == 7) && $int[1][0] == 'gün') { return $day.' günü '.date('H:i', $time); } elseif ($value <= 59 && $int[1][0] == 'dəqiqə' || $int[1][0] == 'saat') { return $ago.' əvvəl'; } else { return (int)date('d', $time).' '.$month.' '.date('Y H:i', $time); } } |
почитай про return
и сделай полный тестовый пример, для запуска [html run |
прочту, но разве return в js чем то отличается от того что в php? если нет, то я его знаю) или вы имеете ввиду что тот участок кода в функцию обернуть как это сделали вы и вернуть результат?
|
Цитата:
|
полный код такой:
function time() { // бла бла.. p.s: выполняет аналогичную функию из php } function date(format, timestamp) { // бла бла.. p.s: выполняет аналогичную функию из php } function ago(time) { var df = time() - time; if (df <= 19) { return 'Elə indi'; } else if (df > 19 && df <= 59) { return 'Bir neçə saniyə əvvəl'; } var mas = [ [ 31556926, ['ay', 2628000] ], [ 2629744, ['həftə', 604800] ], [ 604800, ['gün', 86400] ], [ 86400, ['saat', 3600] ], [ 3600, ['dəqiqə', 60] ], [ 60, ['saniyə', 1] ] ]; var intg = []; for ( var i = 0, len = mas.length; i < len; i++ ) { var el = mas[i][1]; if ( df < mas[i][0]) { intg[1] = el; } else { intg[0] = el; } } var value = Math.floor(df/intg[1][1]); var ago = value + ' ' + intg[1][0]; var days = new Array ('Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə'); var day = days[date('w', time)]; var months = new Array ('', 'Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'); var month = months[date('m', time)]; if (ago == '1 gün') { return 'Dünən ' + date('H:i', time); } else if ((value == 2 || value == 3 || value == 4 || value == 5 || value == 6 || value == 7) && intg[1][0] == 'gün') { return day + ' günü ' + date('H:i', time); } else if (value <= 59 && intg[1][0] == 'dəqiqə' || intg[1][0] == 'saat') { return ago + ' əvvəl'; } else { return date('d', time) + ' ' + month + ' ' + date('Y H:i', time); } } // == ОТЛАДКА == var t = time(); alert(ago(t)); |
где кнопка run
|
а как его добавить?) на форуме редко приходится быть, не знаю что где тут подробно, поискал не нашёл в редакторе
|
Цитата:
Цитата:
попутно верни в time что-нибудь типа 3601 и проверь эти строки Цитата:
|
Часовой пояс GMT +3, время: 13:03. |