The best thing about writing shell scripts is that you can run each part (usually) from the command lines to test it
TODAY=`date +%Y_%m_%d` && echo $TODAY
runs the date command setting the format to YYYY_MM_DD storing it in a variable called TODAY and if that command succedes then echoing its value back to you.
then (in the script) you can just add a line under the first
(might want to add a path).
I am not familure with the mySQLdump but lots of examples exist so lets assume it creates mySQL.dump
tar cvzf db_dump.sql.tgz mySQL.dump
z= zip compression (j is for bzip)
modify the above thus
find /var/www/html/assets/images/ -type f -mtime -1 -print0 | xargs -0 tar cvzf $TODAY/images.tgz
I think that using "mtime 1" is a bit dodgy as its not what is new but what was modified/created in the last 1 day.
There are other ways
the -print0 / xargs -0 handle bad file names.
you might be better off asking short specific questions, but please let us know how you get on.