Если вы хотите, чтобы другие имели доступ к smarts.local.
убедитесь, что IP-адрес вашей системы является статическим.
тогда каждый, кто хочет получить доступ к smarts.local, должен добавить в свой файл hosts следующее статический ip)
или вы должны использовать DNS-сервер в своей сети.
Вы также можете написать команду запуска, которая будет выполнять php artisan serve. (Но вы должны убедиться, что ваш public ip статичен)
Как упомянуто gabr и mliesen, взгляните на единицы DateUtils и SysUtils, полезные функции включают.
Что Вы хотите произойти, если день текущего месяца не существует в Вашем будущем месяце? Скажите, 31 января + 1 месяц? У Вас есть та же проблема, если Вы увеличиваете год, и срок начала работы находится 29 февраля на високосном годе. Таким образом, не может быть универсальной функции IncMonth или IncYear, которая будет последовательно работать над всеми датами.
Для любого заинтересованного, я сердечно рекомендую статью Julian Bucknall о сложностях, которые свойственны от этого типа вычисления о том, как вычислить число месяцев и дней между двумя датами.
Следующее является единственными универсальными функциями инкремента даты, возможными, которые не вводят anomolies в универсальную математику даты. Но это только выполняет это путем перекладывания ответственности назад на программиста, у которого, по-видимому, есть строгие требования определенного приложения, которое он программирует.
IncDay - Добавьте a или вычтите много дней.
IncWeek - Добавьте или вычтите много недель.
Но если необходимо использовать созданный в функциях затем, по крайней мере, быть уверенными, что они делают то, что Вы хотите, чтобы они сделали. Взгляните на единицы DateUtils и SysUtils. Наличие исходного кода к этим функциям является одним из самых прохладных аспектов Delphi. Однако вот полный список созданных в функциях:
IncDay - Добавьте a или вычтите много дней.
IncWeek - Добавьте или вычтите много недель.
IncMonth - Добавьте a или вычтите много месяцев.
IncYear - Добавьте a или вычтите много лет.
Что касается второй части Вашего вопроса, как установить системную дату и время с помощью TDatetime, следующий бесстыдно украденный код из другого сообщения сделает задание:
procedure SetSystemDateTime(aDateTime: TDateTime);
var
lSystemTime: TSystemTime;
lTimeZone: TTimeZoneInformation;
begin
GetTimeZoneInformation(lTimeZone);
aDateTime := aDateTime + (lTimeZone.Bias / 1440);
DateTimeToSystemTime(aDateTime, lSystemTime);
setSystemTime(lSystemTime);
end;
Существует много помощников в единице SysUtils (и как gabr указано, также в DateUtils).
VCL имеет типы (TDate и TDateTime), которые являются, удваивается, и можно использовать в арифметических операциях.
Также посмотрите EncodeDate и DecodeDate