Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 2186
Информация:
Тема содержит 17 сообщения, была просмотрена 15204 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » Javascript, ajax, jquery
 Распечатать тему
Правильный перенос строки в коде (читабельность) и дата в JS (банальный синтаксис)
Zaxap
Проблема возникает не первый раз (а все из-за незнания банального синтаксиса js).
Есть такой вот рабочий код:
Загрузить источник  GeSHi: Javascript
  1. $("#section").append("<article><span class=\"date\">"+date+"</span><span class=\"text\">"+text+"</span>");
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10


Но если сделать так:
Загрузить источник  GeSHi: Javascript
  1. $("#section").append(
  2. "<article><span class=\"date\">"+item.date+"</span>"
  3. "<span class=\"text\">"+text+"</span>"
  4. );
  5. //Не работает, как ни крути...
  6.  
  7. $("#section").append(
  8. "<article><span class=\"date\">"+item.date+"</span>"хз"<span class=\"text\">"+text+"</span>"
  9. );
  10. //А так все очень даже работает!..
  11.  
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10


Разъясните, пожалуйста...
Изменил(а) Zaxap, 18.05.2014 14:34
Зло не дремлет, а я добрый...
 
Pisatel
Загрузить источник  GeSHi: Javascript
  1. $("#section").append(
  2. "<article><span class=\"date\">"+item.date+"</span>"+"<br />"+"<span class=\"text\">"+text+"</span>"
  3. );
  4. //А так все очень даже работает!..
  5.  
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10

Мб таг?

Объединено 17.05.2014 20:48:
Либо http://www.google...the+jquery
Изменил(а) Pisatel, 17.05.2014 17:48
 
Web
Zaxap
Pisatel, мне не <br> надо, просто между ними нужно вставить пару-тройку условий if, а это немного не читабельно, когда тонны кода идут в одну строку, да и так тоже не работает...)))

Но спасибо за пример с +, врубился и сделал так:
Загрузить источник  GeSHi: Javascript
  1.  
  2. $("#section").append(
  3. "<article><span class=\"date\">"+item.date+"</span>"+
  4. "<span class=\"text\">"+item.text+"</span>"+
  5. if(typeof item.attachments !== "undefined"){
  6. //...
  7. }
  8. "</article>"
  9. );
  10.  
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10

Кидает ошибку синтаксиса на if(typeof item.attachments !== "undefined"){, но вот что тут не так? Перепроверял раз 20...
Изменил(а) Zaxap, 18.05.2014 04:54
Зло не дремлет, а я добрый...
 
Pisatel
Скачать исходники  Код
if(typeof(item.attachments) !== "undefined"){



Я просто не понял, что тебе нужно было. Простой перенос для читабельности?
 
Web
Zaxap
Pisatel, да, почти так. И без плюсов (+) также нельзя вставить другие конструкции типа if...

Черт... ничего не выходит, ошибка так и стоит: "Uncaught SyntaxError: Unexpected token if"... хоть с firebug, хоть без него - ошибка одна))
Если бы ошибка вылезла на другой строке, но она там, где, вроде бы, все верно...
Изменил(а) Zaxap, 18.05.2014 05:47
Зло не дремлет, а я добрый...
 
Pisatel
Задай значение раньше. Ошибку вызывает потому, что ты в строке пытаешься сделать проверки, в функции append. Типа такого можно
Загрузить источник  GeSHi: Javascript
  1.  
  2. if(typeof(item.attachments !== "undefined")){
  3. var myattach = "здесь то, что нужно"
  4. } else {
  5. var myattach = "";
  6. }
  7. $("#section").append(
  8. "<article><span class=\"date\">"+item.date+"</span>"+
  9. "<span class=\"text\">"+item.text+"</span>"+myattach+"</article>"
  10. );
  11.  
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10
x1 x1
 
Web
Zaxap
Спасибо! Создал переменную "image" по типу
Загрузить источник  GeSHi: Javascript
  1. if(typeof attachments.photo !=="undefined"){
  2. image = "<img src=\"+photo+\" alt=\"\">";
  3. } else {
  4. image = "";
  5. }
  6. $("#section").append("<article>"+image+"</article>");
  7. //К моему удивлению, работает без ошибок!.. Да и код стал читабельнее)))
  8.  
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10


if(typeof(var !=="undefined")){}
не пашет :)
А if(typeof attachments.photo !=="undefined"){} - очень даже...
Изменил(а) Zaxap, 18.05.2014 10:55
Зло не дремлет, а я добрый...
 
Pisatel
var присваивает переменной значение, поэтому, конечно работать не будет.
Загрузить источник  GeSHi: Javascript
  1. if(typeof attachments.photo !=="undefined"){
  2. var image = "<img src=\"+photo+\" alt=\"\">";
  3. } else {
  4. var image = "";
  5. }
  6. $("#section").append("<article>"+image+"</article>");
  7.  
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10
 
Web
Zaxap
Pisatel, в jq работает :)
А var - это я про
Загрузить источник  GeSHi: Javascript
  1. var var = "hello!";
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10

Зло не дремлет, а я добрый...
 
Pisatel
ВарВар ab)))
x1
 
Web
Zaxap
Pisatel, а как можно превратить число такого вида (json) в нормальную дату в js?
Вот, собственно, число: 1384350600

В php делаю так:
Загрузить источник  GeSHi: PHP
  1. echo date("d-m-Y H:i:s", "1384350600");
Добавлено за 0.028 секунд, используя GeSHi 1.0.8.10


В js вывести дату можно так, насколько знаю:
Загрузить источник  GeSHi: Javascript
  1. alert(new Date());
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10


---


UPDATE!!!

Нашел, что можно сделать так: new Date(item.date), но
как указать формат к ЭТОМУ... и почему-то год выводится 1970 везде, хотя через php все нормально - 2014 год и месяц не январь везде (как в js)...
А время (часы/минуты/секунды) как-то изменяются...
Изменил(а) Zaxap, 18.05.2014 15:23
Зло не дремлет, а я добрый...
 
Pisatel
Zaxap, честно говоря, я не настолько дружу с джаваскрипт... Если эти данные берутся из бд через ajax, то можно перед передачей конвертировать пользовательскими функциями двига, а если нет- хз. Надо ждать гуру.
 
Web
Zaxap
Pisatel, я беру все из стороннего json'a (вк) :D
Все пока хорошо, но как дошел до "бесконечной прокрутки"... А в js дата отображается...хреново)


Сделал так:
Загрузить источник  GeSHi: Javascript
  1. d = new Date(item.date);
  2. d_date = d.getUTCDate() +1;
  3. d_month = d.getUTCMonth() + 1;
  4. d_year = d.getUTCFullYear();
  5. d_hours = d.getUTCHours();
  6. d_minutes = d.getUTCMinutes();
  7. d_seconds = d.getUTCSeconds();
  8. date = d_date+'-'+d_month+'-'+d_year+' '+d_hours+':'+d_minutes+':'+d_seconds;
Добавлено за 0.002 секунд, используя GeSHi 1.0.8.10

Но дата сама по себе выводится неверная (начиная от года 1970, заканчивая тем, что на протяжении всего времени (полтора года) месяц один - январь, а дата перескакивает только раз с 18 на 17 (если мотать от большего к меньшему)...
Как я понял, 1970 - это некий "дефолтный" (не первый, но какой-то стандартный) шняж в js (во многих примерах указан именно год 1970)...
Если выводить текущую дату, то все (почти) нормально, если "вытащить" дату из строки, то не совсем...)))
Изменил(а) Zaxap, 19.05.2014 00:48
Зло не дремлет, а я добрый...
 
Pisatel
Это не js, это стандарт Unix time. Эти цифры- секунды, прошедшие с 1 января 1970 года, с точки начала отсчета.
 
Web
Zaxap
Pisatel, значит не так прочитал)) Просто читал, что точка отчета чего-то там ведется в миллисекундах с 1970... и чего-то еще про Unix...)))
Зло не дремлет, а я добрый...
 
Pisatel
Все просто. То, что ты получаешь- "1384350600" - это количество секунд, прошедших с полуночи 1 января 1970 года до даты записи. Вроде такab
 
Web
Zaxap
Pisatel, хмм... вот почему я всегда думаю вслух или письменно, ибо рассуждается намного продуктивнее... но не в этот раз как-то ab
Надо включить мозг...)))

Объединено 12.06.2014 13:15:
Случайно где-то глянул про unix дату...
Там был пример с java (не js), в конце дата(переменная), умноженная на 1000...
Сделал так - вышло ab
d=new Date(item.date*1000);
Изменил(а) Zaxap, 12.06.2014 03:15
Зло не дремлет, а я добрый...
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: