Ne if-else ile uğraşın, ne de cronjob ile uğraşın. Bu işi SQL tarafında halledin. En doğru cevabı bu arkadaş vermiş. Bu sorgudan dönen sonuçlar otomatik olarak zaten yayınlanmasını istediğiniz tarihte yayınlanmış olur. Yani aslında bir statü vermenize gerek yok, yayınlanma tarihini geleceğe göre ayarlayın yeterli.
select * from yazilar where publish_date <= simdikizaman