He's probably upset when the diaper change time comes because he's being suddenly interrupted when he's in the middle of playing.
Before changing his diaper give him a warning 10 minutes before it's time to change his diaper. You can get his diaper changing supplies ready while this 10 minutes passes.
Then after the 10 minutes passes go tell him that it's time to change his diaper.
Involve him in the diaper changing process by allowing him to hold the new diaper while you remove the old diaper and clean him up.
If none of that works then you'll just have to hold him down and change his diaper while he fights you.
He also might be ready to potty train and you should give potty training a try.