在javascript中传递当前系统时间

时间:2013-12-25 16:30:41

标签: java javascript jsp date date-format

我是网络应用程序新手,在线考试网站,并有一个目前正在静态日期和时间的脚本。我希望系统当前日期和时间加上(添加当前时间)来自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”。

注意 - 这是我网页上的倒数计时器。

三江源。

2 个答案:

答案 0 :(得分:1)

您可以使用scrptletsexpression

<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。

更好的答案:Joda-Time

更好的答案是告诉您避免使用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上的其他问题中找到许多此类示例。

如果您知道用户的Localetime 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_YorkAmerica/Indiana/Knox的时区。