Tridion has functionality to
schedule publish of the page however this functionality will always publish the latest page content. I want to
schedule publish of particular version of the page: reason for this is,
Suppose for one page current version is 8 then I want to schedule version 8 of the page so that I can make further modifications and create version 9 which can be scheduled to publish after specified amount of time after version 8 is published.
Tridion has functionality to
An editor can schedule the content generation and deployment phases of a publishing job separately in the publishing dialogue.
In your example, you can complete version 8 of your page and publish it, specifying that the content is generated "now" (i.e. as soon as the Publisher picks up the job) and placed online later. After the job has started and the version 8 content has been generated, you can complete version 9 of the page and create a new publish job with similar settings.
You can schedule the two phases of publishing separately; this will precisely realize your requirement.
Publish the item and render immediately but schedule the deployment phase for the intended go-live moment. This will cause the rendering to happen with the current versions of the items but the transport to the content delivery environment will not take place until the scheduled time.
This isn't possible out of the box, the CMS functionality is to publish the latest version of the content.
That said, a few years ago a client had a similar requirement, so we wrote a POC to see how successful we could be at getting this working.... we got pretty far but then the requirement was dropped.
Here's what we did:
Wrote GUI extension that was called 'Version Publish' - this opened up a dialog showing the versions of the component or page.
When selecting the item, the relevant publication targets were loaded for that item (this bit of code was stolen from the normal Publish popup dialog)
Before publishing a call was made to a GUI extension webservice using the core service API. The code would roll-forward the content to be the latest version, perform the publish, then delete the roll-forwarded version.
There's a lot we didn't consider in the build, such as workflow, XPM etc, but it was possible make it work.
Typically when you want to withhold publishing of a version that you are currently still working on, you have the option to leave it checked out.
You can do this by manually selecting Checkout on the item, then when you open it, and use the Save and Close button, it won't be automatically checked in. When you are ready with your final edits, you can use the Checkin option again. The only downside of this is, that while it is checked out, you have no option to Publish your changes (unless you would consider to use Experience Manager and Session preview, since that will show you the current version in the context of a Published Page).
This all because the Publisher, will always publish the last checked in item (with the exception to Workflow Publishing).