Перейти к содержимому
  • 0
kaka888

Как получить текущие сутки?

Вопрос

Дайте пожалуйста код, который будет из строки "Sun Sep  1 10:48:14 2019" убирать всё, кроме первого числа, месяца и года.

+ числа и слова в этой строке меняются в зависимости от времени и даты.

Изменено пользователем kaka888

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

В 01.09.2019 в 10:59, kaka888 сказал:

числа и слова в этой строке меняются в зависимости от времени и даты.

Это нужно для часов?

Тогда предлагаю вот такой код(Это готовый код):

local fs = require("filesystem")
local f = io.open("/tmp/time", "w")
f:write("time")
f:close() 
local timestamp = fs.lastModified("/tmp/time") / 1000 + 3600 * 3 --Умножаем на часовой пояс, в моём случае GMT +3
local realtime = os.date("%d.%m.%Y", timestamp) --Реальное время в формате День.Месяц.Год Час:Минута:Секунда
print(realtime)

 

Изменено пользователем BrightYC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня заказ на другом проекте, там надо чтоб репутацию одного и того же игрока могли изменять только 1 раз в 24 часа.
А для этого надо узнавать точное время при каждой попытке изменить репутацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

13 минуты назад, BrightYC сказал:

Это нужно для часов?

Тогда предлагаю вот такой код(Это готовый код):


local fs = require("filesystem")
local f = io.open("/tmp/time", "w")
f:write("time")
f:close() 
local timestamp = tonumber(string.sub(fs.lastModified("/tmp/time"), 1, 10)) + 3600 * 3) --Умножаем на часовой пояс, в моём случае GMT +3
local realtime = os.date("%d.%m.%Y", timestamp) --Реальное время в формате День.Месяц.Год
print(realtime)

 

Твой код выдаёт синтаксическую ошибку возле ')' в 5 строке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.09.2019 в 11:59, kaka888 сказал:

А для этого надо узнавать точное время при каждой попытке изменить репутацию.

Для чего такие манипуляции? Всё же делается гораздо проще.

--Псевдокод
local players = {vasya = {timestamp = false, rep = 0}} --таблица игроков с репутацией
--Допустим, игрок изменил как-то "репутацию" на 1 единицу вверх.

local function getTimestamp()
  local f = io.open("/tmp/time", "w")
  f:write("time")
  f:close() 
  return fs.lastModified("/tmp/time") / 1000
end

players.vasya.timestamp = getTimestamp() + 86400 -- записываем точное время + добавляем сутки 

--Допустим, игрок захотел изменить репутацию
if players.vasya.timestamp <= getTimestamp() or not players.vasya.timestamp--Если таймштаймп "Васи" меньше или равен точному времени или таймштаймп вообще false - значит прошли сутки или игрок еще не голосовал. Изменяем репутацию...
  rep()
else
  --иначе делаем что-то другое, например пишем что голосовать можно только через сутки
end

 

Изменено пользователем BrightYC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, kaka888 сказал:

 

Твой код выдаёт синтаксическую ошибку возле ')' в 5 строке.

Угу, там скобочка лишняя оказалась. возле "3600 * 3"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да я уже заметил скобку и сам)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.09.2019 в 12:10, BrightYC сказал:

Для чего такие манипуляции? Всё же делается гораздо проще...

Спасибо, сейчас опробую

Изменено пользователем Alex
Сокращение цитирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...