Время Unix в удобочитаемую дату и время

Я работаю в lua с устаревшей поддержкой даты, так что есть способы конвертировать миллисекундное время unix во время и дату

мм/дд/гггг чч:мм:сс

У меня есть время и день, но год и месяц трудны

Спасибо.

РЕДАКТИРОВАТЬ: ВСЕ, что мне нужно, это день месяца, теперь я понял другие части

РЕДАКТИРОВАТЬ: первая часть кода NO DAY OF MONTH и все еще работает над DST


 TIMEZONE=-5
 DAYLIGHTSAVING=0--NOT DONE

 while true do
  t=tick()
  y=math.floor(1970+ t /31556926)
  ds=((1970+t/31556926)-y)*31556926
  m=math.floor(ds/2629743)+1
  d=math.floor(ds/86400)+1
  md=0--NOT DONE
  wd=d%7+6
  print(md,wd)
  h=math.floor(math.fmod(t,60*60*24)/3600) + 5 + (TIMEZONE) + (DAYLIGHTSAVING)
  mn= math.floor(math.fmod(t,60*60*24)/60 - 60*h)
  s= math.floor(math.fmod(math.fmod(t,60*60*24),60))
  print(m,d,y)
  print(h,mn,s)
  wait(1)
 end

я сделаю это лучше после того, как получу день месяца и летнее время


person erai    schedule 16.12.2010    source источник
comment
Было бы неплохо, если бы вы поделились, как вы делали другие вещи. Может помочь будущим гуглерам!   -  person David    schedule 16.12.2010
comment
Это работает в игре roblox, поэтому нет OS.date(), потому что нет глобальной ОС.   -  person erai    schedule 16.12.2010


Ответы (1)


Для людей, которые задаются вопросом....

Вот как я это сделал:


TIMEZONE=-5
DST=0

dm={31,28,31,30,31,30,31,31,30,31,30,31}

while true do
t=tick()
y=math.floor(1970+ t /31556926)
ds=((1970+t/31556926)-y)*31556926
m=math.floor(ds/2629743)+1
d=math.floor(ds/86400)+1
md=math.floor(((ds/2629743+1)-m)*dm[m])+1
wd=d%7+6
if(m11)then DST=0 else DST=1 end
if(m==3)then if(md>=14)then DST=1 else DST=0 end end
if(m==11)then if(md>=7)then DST=0 else DST=1 end end
h=math.floor(math.fmod(t,60*60*24)/3600) + 5 + (TIMEZONE) + (DST)
mn= math.floor(math.fmod(t,60*60*24)/60 - 60*(h-DST))
s= math.floor(math.fmod(math.fmod(t,60*60*24),60))
wait(1)
end
person erai    schedule 16.12.2010
comment
используйте оператор %, это быстрее, чем использование math.fmod. - person daurnimator; 16.12.2010