Need help making date & clock script for my game, that’s what i need.
I also put Day/Night cycle to my game & i only need the date & clock.
I’m presuming that you want a GUI in game for telling you the time.
The Lighting
service has a property called TimeOfDay
that returns a formatted string based on the time of day in game.
Using this, you can set the text of a TextLabel
GUI to have the time of day in your game.
For example:
-- Inside a LocalScript inside a TextLabel
local Lighting = game:GetService("Lighting")
task.spawn(function()
-- I like wrapping while loops inside new threads
script.Parent.Text = Lighting.TimeOfDay
task.wait(1)
end)
-- Now the TextLabel will update every second.
If you want the date, that’s a bit harder to make, but not impossible, if you’re doing it in game, or using the real time. Both ways will make use of os.date()
.
To make it use the real date, it’s very simple. Just use:
-- Assuming it's another text label with the date
task.spawn(function()
script.Parent.Text = os.date("%b %d, %Y")
task.wait(1)
end)
As per formatting, since os.date()
accepts a string to format it properly (I’ve formatted it like you wanted, based on your picture), here’s a list of formatting codes for os.date()
:
%a - abbreviated weekday name (e.g., Wed)
%A - full weekday name (e.g., Wednesday)
%b - abbreviated month name (e.g., Sep)
%B - full month name (e.g., September)
%c - date and time (e.g., 09/16/98 23:48:10)
%d - day of the month (16) [01-31]
%H - hour, using a 24-hour clock (23) [00-23]
%I - hour, using a 12-hour clock (11) [01-12]
%M - minute (48) [00-59]
%m - month (09) [01-12]
%p - either "am" or "pm" (pm)
%S - second (10) [00-61]
%w - weekday (3) [0-6 = Sunday-Saturday]
%x - date (e.g., 09/16/98)
%X - time (e.g., 23:48:10)
%Y - full year (1998)
%y - two-digit year (98) [00-99]
%% - the character %
As for in game dates, what you can do is pass a second argument to os.date()
, which is the given time. By default, it uses os.time()
, which returns the current time as a Unix timestamp. By passing your own, which is really any large number, you can make any date you want (as long as it’s after 01/01/1970).
Just keep track of a number, and add one to it every second, then calculate the date based off that.
For example:
local Time = 1240909871 -- use a date to timestamp converter to get your number
task.spawn(function()
Time += 1
script.Parent.Text = os.date("%b %d, %Y", Time)
task.wait(1)
end)
This should help to get you on track. If you have any questions, please ask!
thanks i really need this, but my game’s a lot of messy stuffs, but i really need that.
the date starts at 9/12/2007 as the progress date.
how do i change date and time? is it possible?
maybe that will work i guess???