我是网络应用程序新手,在线考试网站,并有一个目前正在静态日期和时间的脚本。我希望系统当前日期和时间加上(添加当前时间)来自jsp变量的值(即检查的时间间隔) 目前我的javascript如下: -
<script language="JavaScript">
TargetDate = "12/26/2013 5:00 AM";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
添加i有一个jsp变量“t”要添加到当前时间,以使目标时间=当前时间+“t”。
注意 - 这是我网页上的倒数计时器。
三江源。
答案 0 :(得分:1)
您可以使用scrptlets
或expression
。
<script language="JavaScript">
TargetDate = "<%=new java.util.Date()%>";
. . .
</script>
要了解详情,请参阅 link
用于日期格式化(直到Java7):
您可以使用 Simple DateFormat format codes 。
<%
Date dNow = new Date( );
SimpleDateFormat ft =new SimpleDateFormat ("MM/dd/yyyy hh:mm a");
%>
<script language="JavaScript">
TargetDate = "<%=ft.format(dNow)%>";
. . .
</script>
答案 1 :(得分:0)
如何以“12/26/2013 5:00 AM”格式获取此信息?
直接回答您的问题...要在服务器上的Java端(而不是JavaScript中的客户端)执行此操作,请使用捆绑的类java.text.DateFormat和java.text.SimpleDateFormat。
更好的答案是告诉您避免使用java.util.Date和java.util.Calendar类。众所周知,它们的设计和实施都很糟糕。而是使用一个好的日期时间库。在Java中,这意味着Joda-Time(开源第三方库)或由java.time.* classes定义并与JSR 310捆绑在一起的新Java 8,意味着取代旧的juDate /日历。
如果您只想要“12/26/2013 5:00 AM”之类的格式,则可以定义pattern in Joda-Time。您可以在StackOverflow.com上的其他问题中找到许多此类示例。
如果您知道用户的Locale和time zone name,则可以使用这些格式将日期格式化为熟悉的字符串演示文稿。
示例代码......
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;
DateTime now = DateTime.now();
// Style is defined by a pair of letters, one for date portion, the other for time portion.
// Letters are the first letter from: Short/Medium/Long/Full
// This example might be appropriate for a French person in Puducherry India (formerly Pondicherry, ex-colony of France).
DateTimeFormatter formatter = DateTimeFormat.forStyle( "SS" ).withLocale( Locale.FRENCH ).withZone( DateTimeZone.forID( "Asia/Kolkata" ) );
String dateTimeString = formatter.print( now );
System.out.println( "dateTimeString: " + dateTimeString + " for: " + now );
// By comparison.
DateTimeFormatter formatter_FF = DateTimeFormat.forStyle( "FF" ).withLocale( Locale.FRENCH ).withZone( DateTimeZone.forID( "Asia/Kolkata" ) );
String dateTimeString_FF = formatter_FF.print( now );
System.out.println( "dateTimeString_FF: " + dateTimeString_FF + " for: " + now );
运行时(默认时区为美国西海岸)......
dateTimeString: 26/12/13 02:35 for: 2013-12-25T13:05:09.282-08:00
dateTimeString_FF: jeudi 26 décembre 2013 02 h 44 IST for: 2013-12-25T13:14:41.841-08:00
如果您愿意,可以进行实验。对于美国,请尝试Locale.US
的本地和America/New_York
或America/Indiana/Knox
的时区。