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

Автор темы: Deorchik
ID темы: 2312
Информация:
Тема содержит 8 сообщения, была просмотрена 5913 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Реализации даты на сайте
Deorchik
Доброе время суток! У меня возникла такая идея как реализовать чтобы вывод даты был таков: допустим - час назад, 5 минут назад, сегодня, вчера. Кто может делал так? можете поделиться опытом ?

 
Web
Polarfox
У меня много бесполезных вещей, есть и такое http://unlogic.in...ead_id=124 это в теории, идеальный способ обработки дат, щас не ставлю тк влом править что-то.

Обновляется как на фейсбуке, если прошло 5 минут, а потом еще пол часа (страница не закрыта) то и будет показывать 35 минут как-то так.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Deorchik
Спасибо большое =))

Объединено 04.09.2014 07:49:
PolarFox, вот возник такой вопрос, а можно ли код переделать так чтобы он показывал часы дни,а вместо недели и года просто дату - подустим 2/09/2014 ? =)))

Объединено 04.09.2014 16:09:
ac никто не знает ?


Изменил(а) Deorchik, 04.09.2014 16:09
 
Web
Polarfox
можно.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Deorchik
Беру даты с сайта unlogic от PolarFox

Кто может помочь, сделать так чтобы после 6 дней показывало просто даты в виде 19,10,14, что бы года и недели не показывало.
Загрузить источник  GeSHi: Javascript
  1. /*
  2. | Timeline - dynamic [ls] realtime clocklike dates | jQuery outside (c)
  3. | By Psc aka PolarFox | http://unlogic.info | Build:2
  4. */
  5.  
  6. //locale
  7. loc_dt = new Array();
  8. loc_dt[0]='г. ';
  9. loc_dt[1]='н. ';
  10. loc_dt[2]='д. ';
  11. loc_dt[3]='ч. ';
  12. loc_dt[4]='м. ';
  13. loc_dt[5]='сек. ';
  14. loc_dt[6]='';
  15. loc_dt[7]='';
  16. /* en
  17. loc_dt[0]='y. ';
  18. loc_dt[1]='w. ';
  19. loc_dt[2]='d. ';
  20. loc_dt[3]='h. ';
  21. loc_dt[4]='m. ';
  22. loc_dt[5]='s. ';
  23. loc_dt[6]=' ';
  24. */
  25.  
  26. function times_this(this_dt){//set easy times
  27.  
  28. c_dt = Date.parse(new Date())/1000;
  29. t_dt = c_dt-this_dt;
  30. ret_dt=-1;var temp_t;
  31.  
  32. if(this_dt>c_dt||this_dt<0){return -2;}//error data
  33.  
  34. temp_t=t_dt;
  35.  
  36. var num, timestamps = new Array();var whatis = new Array();
  37. timestamps[0] = 31556926;//y
  38. timestamps[1] = 604800;//w
  39. timestamps[2] = 86400;//d
  40. timestamps[3] = 3600;//h
  41. timestamps[4] = 60;//m
  42. timestamps[5] = 0;//s
  43.  
  44. for (num in timestamps){
  45. if((timestamps[num]!=0)&&(temp_t>timestamps[num])){
  46. whatis[num]=Math.floor(temp_t/timestamps[num]);
  47. temp_t=(temp_t%timestamps[num]);
  48. }
  49. else if(timestamps[num]==0){whatis[num] = temp_t;}
  50. else {whatis[num] = 0;}
  51. }
  52.  
  53. num = 0;ret_dt='';var and,i = 0;
  54. for (num in loc_dt){
  55. if(whatis[num]>0){
  56. i++;if(i>2) {break;}//max 2
  57. if(i==1){and=loc_dt[6]}else{and=""}//2[max]-1
  58. ret_dt+=whatis[num]+loc_dt[num]+and;
  59. }
  60. }
  61.  
  62. return ret_dt+loc_dt[7];
  63. }
  64.  
  65. function set_times(){//set js time to all
  66. jQuery(".timeline").each(function (id,el) {var t;
  67. t = times_this(jQuery(el).attr("timestamp"));
  68. if(t!=-2&&t!=-1){jQuery(el).html(t);}
  69. });
  70. }
  71.  
  72. jQuery(document).ready(function(){
  73. set_times();
  74.  
  75. setInterval("set_times()", (1000*60));
  76.  
  77. jQuery(".timeline").click(function() {
  78. set_times();
  79. });
  80. });
  81.  
  82.  
  83.  
Добавлено за 0.008 секунд, используя GeSHi 1.0.8.10


Изменил(а) Deorchik, 19.10.2014 10:16
 
Web
Polarfox
Скачать исходники  Код
if(t_dt > (86400 * 6) ) {
...
}





как то так короче там обработать дату, воткнуть после дельты (t_dt это разница текущей даты и проставленной в спане) и вернуть, и все будет работать, может потом допишу.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Deorchik
PolarFox, Ага спасибо, сейчас буду чего то понимать =))

 
Web
Vova
Deorchik написал:

Доброе время суток! У меня возникла такая идея как реализовать чтобы вывод даты был таков: допустим - час назад, 5 минут назад, сегодня, вчера. Кто может делал так? можете поделиться опытом ?


Загрузить источник  GeSHi: PHP
  1.  
  2. $date = time()-1000; // дата с БД
  3.  
  4. $d = time() - $date;
  5. $data = gmdate("Y-m-d", $date);
  6.  
  7. if ($d < 60) echo $d . ' seconds ago';
  8. elseif ($d < 3600) echo round($d / 60) . ' minutes ago';
  9. elseif ($data == date("Y-m-d")) echo 'today '.$data;
  10. elseif ($data == date("Y-m-d+1")) echo 'yesterday '.$data;
  11. else echo gmdate("Y-m-d H:i:s ", $date);
  12.  
Добавлено за 0.019 секунд, используя GeSHi 1.0.8.10


x1
 
Web

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

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)