21

Re: події та обробники

elektryk написав:
bebyk написав:
elektryk написав:

Ну, потрібно вирахувати кількість хвилин, які  громодянин прожив до цього часу.
А ще кількість секунд.

То в чім проблема? Відніміть від теперішніх секунд епохи секунди епохи в момент народження громадянина. Якщо громадянин народився до 1970, відповідно треба додати секунди до початку епохи до теперішніх.

valueAsNumber вам у поміч.

Але задача інша!!

Яка ж?)

Подякували: leofun01, ostap34PHP, 221VOLT3

22

Re: події та обробники

Створюєте об'єкт Date, віднімаєте від теперішньої дати і ділите на 60 000 (1000 бо результат у мілісекундах, 60 бо у хвилині 60 секунд))
Я так зрозумів, ви тренуєтеся, а не в проекті щось робите, тому код не приводжу, щоб ви самі спробували спочатку)
https://developer.mozilla.org/en-US/doc … jects/Date
Тільки підкажу, що про епоху Юнікса тан не треба пам'ятати, Date все вміє

Подякували: leofun01, 221VOLT2

23

Re: події та обробники

bebyk написав:
elektryk написав:

Ну, потрібно вирахувати кількість хвилин, які  громодянин прожив до цього часу.
А ще кількість секунд.

То в чім проблема? Відніміть від теперішніх секунд епохи секунди епохи в момент народження громадянина. Якщо громадянин народився до 1970, відповідно треба додати секунди до початку епохи до теперішніх.

valueAsNumber вам у поміч.

Хи-хи-хи-хи!! Звісно, що так.
Ось зчитали ми дату, наприклад, 25.05.1960
Як перетворити її в секунди??
Камінь спотикання для мене - це розділити дату на три окремі числа.

24

Re: події та обробники

Звідки зчитали? Вам так і ввели в полі? У форматі як ви показали? (А, все, перечитав завдання, бачу, що так)
Тут дійсно може виникнути проблема з форматом (конструктор Date будь що не прийме)
Ви можете розбити строку за допомогою методу split (https://developer.mozilla.org/en-US/doc … ring/split) і потім згенерити правильну строку
Наприклад:

const date = '25.05.1960';
const dateParts = date.split('.');

і далі уже можете використовувати dateParts[0], dateParts[1], dateParts[2]
На практиці можна причепити лібу на інпут, яка уже у якомусь стандартизованому форматі дату буде встановлювати

25

Re: події та обробники

harentius написав:

Звідки зчитали? Вам так і ввели в полі? У форматі як ви показали? (А, все, перечитав завдання, бачу, що так)
Тут дійсно може виникнути проблема з форматом (конструктор Date будь що не прийме)
Ви можете розбити строку за допомогою методу split (https://developer.mozilla.org/en-US/doc … ring/split) і потім згенерити правильну строку
Наприклад:

const date = '25.05.1960';
const dateParts = date.split('.');

і далі уже можете використовувати dateParts[0], dateParts[1], dateParts[2]
На практиці можна причепити лібу на інпут, яка уже у якомусь стандартизованому форматі дату буде встановлювати

Так. З поля форми зчитати.
Чудову идею підказали, дотепну і витончену.
Спасибі.

До речі, що таке ліба??

26

Re: події та обробники

До речі, що таке ліба??

Так на програмістському жаргоні називають бібліотеки (від англ. library).
А бібліотеки я б сказав, що це такі програмні продукти, розроблені для використання в інших продуктах. Як цегла для будинку) Або вікно, двері. Різниця правда в тому, що двері існують в єдиному екземплярі, а бібліотеки можна скільки завгодно раз використати, але ідею думаю ви вловили

У вашому випадку, наприклад: https://bootstrap-datepicker.readthedocs.io/en/latest/ (купа їх, це перше, що у видачі гугла зловив)

Подякували: 221VOLT1

27 Востаннє редагувалося bebyk (19.03.2020 15:27:48)

Re: події та обробники

elektryk написав:
bebyk написав:
elektryk написав:

Ну, потрібно вирахувати кількість хвилин, які  громодянин прожив до цього часу.
А ще кількість секунд.

То в чім проблема? Відніміть від теперішніх секунд епохи секунди епохи в момент народження громадянина. Якщо громадянин народився до 1970, відповідно треба додати секунди до початку епохи до теперішніх.

valueAsNumber вам у поміч.

Хи-хи-хи-хи!! Звісно, що так.
Ось зчитали ми дату, наприклад, 25.05.1960
Як перетворити її в секунди??
Камінь спотикання для мене - це розділити дату на три окремі числа.

Нащо її розбивати на три окремих числа? Інпут у сучасних бравзерах має видавати придатний для обчислення формат. Можна ще причепити required pattern="\d{4}-\d{2}-\d{2}" для старих.

І тоді:

const date = new Date('1960-05-25');
const current = Date.now();
const needed = current - date.getTime();
//обраховуємо і видаємо секунди
console.log(Math.floor(needed.toString() / 1000));
Подякували: harentius, leofun01, 221VOLT3

28

Re: події та обробники

Тільки кілька уточнень ;)
1) .getTime() необов'язково, можна просто

const needed = current - date

2) Приведення до строки у арифметичному контексті це взагалі дуже дивно
Чому не просто:

console.log(Math.floor(needed / 1000));
Прихований текст

Якби ви зробили якось так:

console.log(Math.floor(needed / 1000).toString());

, то я б сказав би що ви занадто старанні))) (І це було б правильно)

Подякували: bebyk, leofun012

29

Re: події та обробники

harentius написав:

Тільки кілька уточнень ;)
1) .getTime() необов'язково, можна просто

const needed = current - date

2) Приведення до строки у арифметичному контексті це взагалі дуже дивно
Чому не просто:

console.log(Math.floor(needed / 1000));
Прихований текст

Якби ви зробили якось так:

console.log(Math.floor(needed / 1000).toString());

, то я б сказав би що ви занадто старанні))) (І це було б правильно)

Я вже забув, як виходити в консоль.
.. Уявляєте??

30

Re: події та обробники

harentius написав:

Тільки кілька уточнень ;)
1) .getTime() необов'язково, можна просто

const needed = current - date

2) Приведення до строки у арифметичному контексті це взагалі дуже дивно
Чому не просто:

console.log(Math.floor(needed / 1000));
Прихований текст

Якби ви зробили якось так:

console.log(Math.floor(needed / 1000).toString());

, то я б сказав би що ви занадто старанні))) (І це було б правильно)

Справді, зайвини додав. Треба відточувати вміння.  :)
Дякую.

Подякували: harentius, 221VOLT2

31

Re: події та обробники

elektryk написав:

Я вже забув, як виходити в консоль.

Ви ж розумієте, що це дві секунди в Ґуґлі?

Прихований текст

Я навіть коли був на своїй однісінькій співбесіді на посаду розробника, то дуже дивувався, що мене питають по теорії, скажімо, команди Убунтової консолі напам'ять, які я в разі потреби можу піддивитися в Ґуґлі DuckDuckGo за пару сек. Чому б на ті дві години не дати мені компа з виходом у мережу і не задати за цей час закодити якийсь невеликий застосунок? Загадка.

Подякували: harentius, leofun01, 221VOLT3

32

Re: події та обробники

bebyk написав:
elektryk написав:

Я вже забув, як виходити в консоль.

Ви ж розумієте, що це дві секунди в Ґуґлі?

Прихований текст

Я навіть коли був на своїй однісінькій співбесіді на посаду розробника, то дуже дивувався, що мене питають по теорії, скажімо, команди Убунтової консолі напам'ять, які я в разі потреби можу піддивитися в Ґуґлі DuckDuckGo за пару сек. Чому б на ті дві години не дати мені компа з виходом у мережу і не задати за цей час закодити якийсь невеликий застосунок? Загадка.

Вибачаюсь, я про це чомусь не подумав. Не туди спрямований мій розум. Старію...


А хіба в гуглі є такий дріб'язок??

33 Востаннє редагувалося elektryk (29.03.2020 01:06:13)

Re: події та обробники

І тоді:

const date = new Date('1960-05-25');
const current = Date.now();
const needed = current - date.getTime();
//обраховуємо і видаємо секунди
console.log(Math.floor(needed.toString() / 1000));

Ми маємо

<label for="data">ввести дату свого народжения в форматі ДД.ММ.рррр (наприклад, 25.05.1980)</label>
    <input type="data" id="data"><br>

тому const date = new Date('1960-05-25'); не підійде.
Треба якось цю дату зчитати з input і віддати JavaScript для обробки.
То як це зробити??

34 Востаннє редагувалося ExPy (01.08.2020 11:08:47)

Re: події та обробники

elektryk написав:

тому const date = new Date('1960-05-25'); не підійде.

чому??
Ну напишiть
const date = new Date(1960,5,25);
чому ви не хочете банально почитати документацiю? https://developer.mozilla.org/uk/docs/W … jects/Date

35

Re: події та обробники

ExPy написав:
elektryk написав:

тому const date = new Date('1960-05-25'); не підійде.

чому??
Ну напишiть
const date = new Date(1960,5,25);
чому ви не хочете банально почитати документацiю? https://developer.mozilla.org/uk/docs/W … jects/Date

Але ж в

const date = new Date(1960,5,25); 

дата не зчитана з інпуту, а забита безпосередньо!!
Тобто кожному користувачу потрібно роззуватись і лізти в код!!
А задача фармулюється по іншому:
Будь яка людина (далеко не програміст) вводить в поле дату та отримує свій вік в секундах або в хвилинах.

36

Re: події та обробники

Значення поля можна отримати так:

document.getElementById("data").value
Подякували: leofun01, harentius, 221VOLT3

37

Re: події та обробники

Напишiть вже хтось за нього вiд i до, а то буде далi клянчити "а значення поля не можна вставити в конструктор дати, пише якийсь NaN!"

38

Re: події та обробники

itakal написав:

Напишiть вже хтось за нього вiд i до, а то буде далi клянчити "а значення поля не можна вставити в конструктор дати, пише якийсь NaN!"

Мені здається, що це трохи безсмисленно. Якщо автор з цим не може впоратися, то йому не потрібно зараз це завдання робити. Це не його.
Тут з двох одне: або учить основи, поки не зрозуміє, або просто чимось іншим займатися. Все. (Ну не повинно таке завдання займати кілька місяців на вирішення. Тут не тільки знання людини, а ще й підходи. Не знайшов рішення в одному місці, значить повинен на стіну лізти шукати в іншому. І знайти.) Не знаю, можна попробувати https://www.w3schools.com/js/. Там є приклади, які можна попробувати, і там найперший приклад якраз схожий (але не на 100%) на те, що автор намагається зробити. Може основи програмування повчити. Може основи html. Але десь є серйозний пробіл. Його потрібно виявити і закрити.

Прихований текст

Мене взагалі завжди дивувало, як (і навіщо!) люди купляють якісь сумнівні курси, з якими потім довго і безсмисленно мучаться, якщо все необхідне є у відкритому доступі, і ще й, як правило, краще (w3schools точно краще, ніж "відеоуроки по JavaScript Михайла Русакова"). Звісно, бувають корисні і рідкісні речі, які варто купити на тому ж юдемі чи курсері, але то вже зовсім інше питання, і зовсім інший рівень.

39

Re: події та обробники

elektryk,якi у вас напрацювання по цiй задачi з датами (крiм того, що написали в тредi). Що саме неясно?

harentius, на це є багато причин.

Прихований текст

Деколи iнфи банально нема на рос./укр. мовi. Я знаю аксiому, що "справжнiй погроммiст мусить знати iнглiш!!!!", але реальнiсть трохи iнакша. Ну i в вiдеокурсi часто все розжовано i структуризовано.
Тай не вебом єдиним..по реверсу/системному програмуваннi курси багато кому допомогли, там все складнiше чим console.log..

Подякували: harentius1

40 Востаннє редагувалося 221VOLT (03.04.2020 18:56:51)

Re: події та обробники

маленький несуттєвий нюанс --
програміст старається писати менше коду, а не більше :)

навіщо писати

<script type="text/javascript">
  ...
</script>

якщо можна писати

<script>
  ...
</script>

?

надворі 2020й рік, та стандарт html5 :)
html5 для скриптів не вимагає писати type="..
досить писати html4/xhtml :)

це ж самісіньке і про DOCTYPE :)