How to automate wordpress plugin activate and deactivate by php logic?

Method 1

You can use activate_plugin() and deactivate_plugins() to activate/deactivate plugins programmatically.

If you want to control the time at which those actions happen, then you can use wp_schedule_event() too.

Method 2

I know you asked about PHP, but if you have WP-CLI installed on your server, you can also write a script that uses wp plugin activate and wp plugin deactivate. Finally, add a cron job to run your script.