I don’t have a server, so i don’t have crontab access. I am thinking of using a PHP script to check current time and how much time has passed. For example, I run the script, it stores the current date in MySQL and check if 30 days have passed. If so, do my stuff.
Is it possible to do all these without MySQL? And of course it is only my thinking, i haven’t tried yet.
Keeping script running:
The issue is that you’ve either got to keep that script running for a long, long time (which PHP doesn’t like) or you’ll have to manually run that script every day or whatever.
One thing you could do is write a script to run on your local machine that accesses that PHP script (e.g. using the commandline tool ‘wget’) every minute or hour or whatever.
If you want to have a long-running script, you’ll need to use: http://php.net/manual/en/function.set-time-limit.php. That’ll let you execute a script for much longer.
As noted in another answer, there are also services like this: https://stackoverflow.com/questions/163476/free-alternative-to-webcron
Need for MySQL?
As for whether you need MySQL – definitely not, though it isn’t a bad option if you have it available. You can use a file if required (http://php.net/manual/en/function.fopen.php) or even SQLite (http://php.net/manual/en/book.sqlite.php) which is a file-based SQL database.